同样查看Angular中的多个控制器

时间:2013-12-16 09:15:42

标签: javascript angularjs ngtable

我正在使用ng-table指令来显示包含数据的表。

我目前使用该表的观点是:

<table ng-table="table_params" show-filter="true" ng-controller="table">
...
</table>

我还有几页需要显示同一个表(只有不同​​的数据)。所以对我来说逻辑似乎是使用一个视图但不同的控制器用不同的数据填充表格。我不确定Angular如何做到这一点以及如何做到这一点。

我正在使用angular-route使用ng-view指令进行路由

2 个答案:

答案 0 :(得分:1)

如果您使用ngRoute,请在$routeProvider配置中设置控制器,而不是在模板中设置。

$routeProvider.when('/table/1', {
    templateUrl: 'common_table.html',
    controller: 'Table1Controller'
});

doc:ngRoute.$routeProvider#methods_when

答案 1 :(得分:1)

在你的情况下,不要将ng-controller放在html中,而是放在js中(即app.js)

.when('/table', {
  templateUrl: 'views/table.html',
  controller: 'tableCtrl'
})
.when('/yetanothertable', {
  templateUrl: 'views/table.html',
  controller: 'yetanothertableCtrl'
})

如果您想要另一个控制器的单独部分,请将其放在单独的html中并使用ng-include。在您的views / table.html中:

<div>Main content here...</div>
<div ng-include="'views/extracontent.html'"></div>

然后输入你的'views / extracontent.html'ng控制器。请记住,ng-include也接受var,因此你可以在tableCtrl和其他人中声明它以包含不同的视图。