2015-07-02 2 views
0

мне часто нужно больше, чем один контроллер в одном маршруте, и я хотел бы знать, могу ли я использовать этот вид синтаксиса:Определение нескольких контроллеров в одном маршруте

angular.module('app', ['ngRoute']) 

.config(['$routeProvider', function($routeProvider){ 
    $routeProvider.when('/', { 
    template : 'index.html', 
    controller : ['Ctrl1', 'Ctrl2'] 
    }); 
}]); 

папки контроллера индекс

angular.module('app') 

.controller('Ctrl1', function(){ 

}) 

.controller('Ctrl2', function(){ 

}); 

Контроллеры могут стать очень большими.
Цель состоит в том, чтобы загрузить их только при необходимости.

+1

Вы могли бы делить просматривать отдельные виды и прикреплять контроллер к каждому ребенку. [ui-router] (http://angular-ui.github.io/ui-router/site/#/api/ui.router) может сделать это за вас. – skubski

+0

Я бы хотел использовать только чистую угловуюJS, но из того, что я слышал, кажется, что ui-router лучше – gr3g

ответ

0

Вам не нужно определить контроллеры на маршруте, вы можете определить их на HTML:

JS:

angular.module('app', ['ngRoute']) 
.config(['$routeProvider', function($routeProvider){ 
    $routeProvider.when('/', { 
    template : 'index.html', 
    }); 
}]); 

angular.module('app') 

.controller('Ctrl1', function(){ 

}) 

.controller('Ctrl2', function(){ 

}); 

HTML:

<div ng-controller="Ctrl1"></div> 
<div ng-controller="Ctrl2"></div> 
+0

Но это становится беспорядком, если у вас есть большое приложение, не так ли? – gr3g

+0

Как вы их используете, если вы не определяете их в HTML? Использование контроллера в маршруте имеет другую цель. –

+0

Определение их в маршруте - это просто варианты, чтобы не отображать его в вашем шаблоне с помощью 'ng-controller =" Ctrl1 "' – gr3g

Смежные вопросы