javascript – 在渲染所有ng-repeats时调用函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在渲染所有ng-repeats时调用函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2089字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 在渲染所有ng-repeats时调用函数](/upload/InfoBanner/zyjiaocheng/727/d8f3994b390e4e1286644366356bdf9e.jpg)
我有一个代码,它进行ajax调用并获取一个json对象,从中呈现ng-repeat.一旦这一切都被渲染,我想调用一个函数来绑定渲染元素上的一些事件.
<div ng-repeat="list in arr | filter: {DegreeName: 'xyz'}">
<div class="saveprogram">save program</div>
</div>
<div ng-repeat="list in arr | filter: {DegreeName: 'abc'}">
<div class="saveprogram">save program</div>
</div>
<div ng-repeat="list in arr | filter: {DegreeName: 'test'}">
<div class="saveprogram">save program</div>
</div>
一旦渲染了所有上述ng-repeat,我想在其上附加一些事件.我试过了
$window.onload = function(){
//someevent
$(".saveprogram")
}
这有效,但它在IE中有一些问题.
有人可以帮我一些指令,一旦所有ng-repeat被渲染就会运行
Note: I have gone through many posts and tried but that didn’t help. I would have used ng-click but this is an existing code and very complex. It has lot of things in it. So I don’t want to rewrite everyhing again. And calling function every time on ng-click I didnt find it good. I just want to run the function once, which does all bindings
解决方法:
指示
您只需在控制器之前插入该代码即可
var module = angular.module('testApp', [])
.directive('onFinishRender', function ($timeout) {
return {
restrict: 'A',
link: function (scope, element, attr) {
if (scope.$last === true) {
$timeout(function () {
scope.$emit(attr.onFinishRender);
});
}
}
}
});
请注意,我没有使用.ready(),而是将其包装在$timeout中. $timeout确保在ng-repeated元素真正完成渲染时执行(因为$timeout将在当前摘要周期结束时执行 – 并且它也会在内部调用$apply,与setTimeout不同).因此在ng-repeat完成后,我们使用$emit向外部作用域(兄弟和父作用域)发出一个事件.
然后在你的控制器中,你可以用$on来捕获它:
$scope.counter = 0;
$scope.$on('ngRepeatFinished', function(ngRepeatFinishedEvent) {
$scope.counter++;
if($scope.counter == 3){
//CallYourMethodHere()
$scope.counter = 0;
}
});
使用html看起来像这样:
<div ng-repeat="item in items" on-finish-render="ngRepeatFinished">
<div>{{item.name}}}<div>
</div>
如果指令不清楚,请查看此文档:
https://docs.angularjs.org/guide/directive
参考:
Answere基于Calling a function when ng-repeat has finished由于用户已经看到了这个回答,但仍有问题. (我刚在控制器内添加了计数器).
内容总结
以上是互联网集市为您收集整理的javascript – 在渲染所有ng-repeats时调用函数全部内容,希望文章能够帮你解决javascript – 在渲染所有ng-repeats时调用函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。