Как правило, я хочу инициализировать вложенный ng-controller
внутри ng-repeat
с использованием переменной.AngularJS, вложенные контроллеры из переменной
JS
angular.module('app',[])
.controller('main',function($scope){
angular.extend($scope,{
name:'Parent Controller',
items:[
{name:'nested2'},
{name:'nested1'}
]
});
})
.controller('nested1',function($scope){
$scope.name = "Name1";
})
.controller('nested2',function($scope){
$scope.name = "Name2";
});
Я хочу это:
<div ng-controller="main" ng-app='app'>
Nested: {{name}}
<div ng-controller="nested1">{{name}}</div>
<div ng-controller="nested2">{{name}}</div>
</div>
стать чем-то вроде этого:
<div ng-controller="main">
Nested: {{name}}
<div ng-repeat="item in items">
<div ng-controller="item.name">{{name}}</div>
</div>
</div>
Проблема: это не работает. Ни то, ни другое не работает, что я пробовал после google'ing в течение часа или около того.
Есть ли какой-либо «законный» и хороший способ достичь этого?
Что вы хотите сделать? Пример вашего неправильного использования Контролера, вы должны указать ng-model или Service, но я думаю, это просто артефакт упрощения. –
'ng-repeat' уже создает дочерние контроллеры для каждой итерации. – tymeJV
@DavidSergey, я обновил вопрос. Я хочу ... скажем, у меня есть коллекция виджетов. Каждый виджет имеет контроллер.Я хочу ng-повторить через эту коллекцию и создать вложенный контроллер для каждого из них – jevgenig