2014-12-29 108 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>