我正在尝试构建一个在嵌套ng-repeat
完成渲染后运行的指令。这是我尝试过的(fiddle):
HTML:
<div ng-app="MyApp" ng-controller="MyCtrl">
<ul my-directive>
<li ng-repeat="animal in animals">{{animal}}</li>
</ul>
</div>
JavaScript:
angular.module("MyApp", [])
.directive("myDirective", function () {
return function(scope, element, attrs) {
alert(element.find("li").length); // 0
};
});
function MyCtrl($scope) {
$scope.animals = ["Dog", "Cat", "Elephant"];
}
我的自定义指令中的链接函数在所有<li>
元素都已呈现之前运行(并且0
已被警告)。 ng-repeat
完成渲染后如何运行代码?
答案 0 :(得分:3)
您可以将指令移到ng-repeat,http://jsfiddle.net/ZTMex/3/
中<div ng-app="MyApp" ng-controller="MyCtrl">
<ul>
<li ng-repeat="animal in animals" my-directive>{{animal}}</li>
</ul>
</div>
或者查看与您的问题相关的https://stackoverflow.com/a/13472605/1986890。