gpt4 book ai didi

javascript - 在 Angular Directive(指令)中完成 ng-repeat

转载 作者:行者123 更新时间:2023-11-29 14:56:27 24 4
gpt4 key购买 nike

在下面的代码中, Angular Directive(指令)“myscroll”如何知道正在创建哪些 ng-repeat 元素?

<myscroll>
<div ng-repeat="a in arr">{{a}}</div>
</myscroll>

我知道 $last 事件没有触发到父指令,我该如何解决这个问题?

myapp.directive("myscroll", function () {
return{
restrict: "E",
transclude: true,
template: "<span class='left'></span><div class='mask' ng-transclude></div><span class='right'></span>",
link: function (scope, element, attr) {

scope.$watch("$last",function(){ console.log("ng-repeat rendered") })

}
}
})

最佳答案

一个简单的方法是创建一个名为“repeat-done”的新指令,并在“ng-repeat”所在的位置使用它。然后,您可以根据需要通知“myscroll”指令(父作用域)。

<myscroll>
<div ng-repeat="a in arr" repeat-done>{{a}}</div>
</myscroll>

myapp.directive('repeatDone', [function () {
return {
restrict: 'A',
link: function (scope, element, iAttrs) {

var parentScope = element.parent().scope();

if (scope.$last){
// ng-repeat is completed and you now have access to 'myscroll' scope
console.log(parentScope);
}
}
};
}])

关于javascript - 在 Angular Directive(指令)中完成 ng-repeat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17071221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com