2014-12-29 78 views
1

可以將多個控制器連接到一個路由,如控制器陣列?Angular JS Route:連接多個控制器

'/存儲',我需要附加「StoreController」 和 「ReviewController」,無需重複。當()這麼多次:

我的代碼:

angular 
    .module('gemStore', [ 
    'example-directives' 
    ]) 
    .config(function ($routeProvider) { 

    $routeProvider 

     .when('/store', { 
     templateUrl: 'store.html', 
     controller: 'StoreController' 
     }) 

     .when('/store', { 
     templateUrl: 'store.html', 
     controller: 'ReviewController' 
     }) 

     .otherwise({ 
     redirectTo: '/' 
     }); 

    }); 
+1

沒有就沒有辦法通過控制器的陣列。我很確定你做錯了。 :(每個頁面應該只有一個控制器在它的根目錄下,你需要的是一個父控制器用於'/ store',另外兩個控制器作爲該控制器下的子控制器,另外兩個控制器將在HTML中用ng-我很好奇當代碼實際運行時會發生什麼 – SoluableNonagon

+0

噢,好的,謝謝! – user3911545

回答

4

應該發生什麼是你應該只有一個'根'控制器的頁面,並且頁面的任何'部分'應該是根控制器的子項。

$routeProvider 

    .when('/store', { 
    templateUrl: 'store.html', 
    controller: 'StoreParentController' 
    }) 

然後孩子們可以在HTML中聲明,如下所示:

<div ng-controller="StoreParentController"> <!-- you dont need this particular controller here because you have it in your routeprovider, this is just an example of the structure--> 
    <div ng-controller="StoreController"> stuff about store </div> 
    <div ng-controller="ReviewsController"> reviews </div> 
</div>