Может ли кто-нибудь сказать мне, можно ли назначить контроллер из директивы разметки до того, как ng-repeat выполнит свою задачу?Угловой, как назначить контроллер разметке до ng-repeat
Код ниже всего лишь пример того, что я хочу сделать
<body ng-app="App">
<div my-t>
<div ng-repeat="obj in List">
{{obj.Name}}
</div>
</div>
angular.module('App',[])
.directive('myT',[function(){
return {
replace : true,
transclude : true,
template : '<div ng-controller="listCtrl"><div ng-transclude></div></div>'
};
}])
.controller('listCtrl', ['$scope', function($scope){
$scope.List = [
{Name: 'a'},{Name: 'b'}
];
}]);
Проблема заключается в том, что, когда моя директива изменяет шаблон, назначая нг -контроллер ng-repeat уже скомпилирован и поэтому не будет отображать данные. Перемещение ng-контроллера в разметку это не вариант.
Лучший.
вы можете поместить 'нг-контроллер = "ListCtrl"' любого элемента родителя ваших нг-повтор, даже на тот же элемент, 'нг-app' на – maurycy
Привет @maurycy Я явно хочу, чтобы директива вставляла в разметку, какой контроллер собирается использовать, это не вопрос того, где ее поставить, - это вопрос использования директивы для размещения ng-контроллера и ng-repeat сможет использовать список, указанный контроллером. Но спасибо :) –
Вы также можете поставить 'controller' в свою директиву с помощью' controller: 'listCtrl'', вы также можете удалить 'ng-controller' из своего шаблона. –