使用 angularjs 加载多个视图

Load multiple views using angularjs

我有这样一个场景:

<a href="#">Link1</a>
<a href="#">Link2</a>

<div id="child1"></div>
<div id="child2"></div>

我在我的应用程序中使用 ngRoute(标准 AngularJS 路由器)。


即: 我希望不同的 link 有不同的观点。如何使用 AngularJS 完成此操作。我知道 Angular 确实提供了路由,但是我在网上看到的任何示例都仅针对单个视图。

我让这个场景非常简单。实际上它要复杂得多,所以我无法将每个 link.

的 2 个视图合并为 1 个视图

这里有一个建议:

1) 制作 4 个模板(每个视图一个):

  • viewA.html
  • viewB.html
  • viewC.html
  • viewD.html

2) 在您的应用中设置 2 条路线(每个 link 一条):

$routeProvider.when('/page1', {
    templateUrl: 'page1.html',
    controller: 'Page1Ctrl'
}).when('/page2', {
    templateUrl: 'page2.html',
    controller: 'Page2Ctrl'
});

3) 包括页面 link1.html 和 link2.html

中的视图
<!-- page1.html -->
<div id="child1" ng-include="'viewA.html'"></div>
<div id="child2" ng-include="'viewB.html'"></div>

<!-- page2.html -->
<div id="child1" ng-include="'viewC.html'"></div>
<div id="child2" ng-include="'viewD.html'"></div>

3) 设置您的 <a> 标签

<a href="#/page1">Link1</a>
<a href="#/page2">Link2</a>

另一个建议,你可以使用ui-routermultiple named views它很容易使用而且非常强大。

您可以像这样使用 ui-view 创建不同的视图容器

<a href="#" >Link1</a>

<a href="#" >Link2</a>

<div ui-view="child1"></div>
<div ui-view="child2"></div>

并且在您 app.config 中,您可以为每个状态设置要为不同视图加载的模板:

.state('report', {      
    views: {        
      'child1': { ... templates and/or controllers ... },       
      'child2': {}      
    }