2013-12-16 24 views
0

我正在使用ng-table指令來顯示帶有數據的表。利用表同一視圖Angular中的多個控制器

我目前的觀點是:

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

我有幾個需要顯示在同一個表(僅適用於不同的數據),更多的網頁。所以對我來說,合乎邏輯的事情似乎是使用一個視圖,但不同的控制器用不同的數據填充表格。我不確定最新的Angular方式以及如何去做。

我使用angular-route如果您正在使用ngRoute做路由與ng-view指令

回答

1

在你的情況,不要把NG-控制器在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和其他聲明中包含不同的視圖。

+0

在ng-router的情況下,你是對的,我在ng-router中定義控制器的問題是,有時候我想在單個頁面中有多個控制器,而不是指定控制器更容易,因爲角度推遲控制器使用的外觀在模板上。 – Michael

+0

我編輯了答案以反映您的評論。 – Tino

1

然後設置控制器在$routeProvider配置,而不是在模板中。

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

DOC:ngRoute.$routeProvider#methods_when

相關問題