0

Как название, я хотел бы использовать более одного контроллера внутри некоторого дополнительного ракурсаКак я могу использовать несколько контроллеров angularjs внутри представления (или subview для нескольких видов)?

routes.js (например.):

.state("multi",{ 
      url: "/multi", 
      views: { 
       "": { 
        templateUrl: "multipleView.htm", 
        controller: "MainCTRL", 
        controllerAs: "ctrl" 
       }, 
       "[email protected]": { 
        templateUrl: "testingBlock.htm", 
        controller: ["CtrlOne", "CtrlTwo"], 
        controllerAs: "ctrl" 
       }, 
      }); 

Или я должен поставить CtrlOne и CtrlTwo внутри третьего контроллера :

function CtrlThree($scope){ 
     CtrlOne($scope); 
     CtrlOTwo($scope); 
} 
+0

Пара вещей. Во-первых, обозначение каждого 'controllerAs' одинаково - это рецепт катастрофы. Во-вторых, ваша предпосылка здесь кажется ошибочной. Назначение контроллера * только * должно быть клеем для представления, поэтому наличие нескольких контроллеров для одного представления кажется неправильным. Что вы действительно пытаетесь сделать с этим? – Claies

ответ

4

Почему бы не поставить контроллер на вид, а не указывать его на routeProvider.

Кроме того, контроллеры имеют иерархию или вы хотите, чтобы все они работали на одном уровне.

Пример того, что я упомянул выше.

<div ng-controller="CtrlOne"> <div ng-controller="CtrlTwo"></div> </div>

Это будет HTML в файле "multipleView.htm".