我正在使用ng-repeat& amp;模板。 ng-repeat的每次迭代都会创建一个复选框。 我希望能够将这些复选框中的每一个转换为flipswitch(使用我已包含的第三方库),但我不知道如何准确地知道Angular如何/何时完成创建页面。 我尝试过使用ng-init和$ last但是无法解决该方法的问题。 有没有办法知道角度何时完成所以我可以运行flipswitch初始化代码?
由于
答案 0 :(得分:1)
没有内置角度的机制来知道处理页面的时间。在页面加载完成后,尝试转换所有复选框,这是一个JQuery范例,并且会阻碍您作为Angular开发人员的发展,看起来是指令。
基本上你会有一个元素,如:
<input type="checkbox" my-flip-switch>
在my-flip-switch指令中,您可以在渲染时将该特定元素转换为翻转开关。
答案 1 :(得分:1)
据我了解你想要检测ng-repeat什么时候完成,所以你初始化了flipswitch,
确定将此指令添加到您的模块
.directive('repeatDone', function() {
return function(scope, element, attrs) {
if (scope.$last) { // all are rendered
scope.$eval(attrs.repeatDone);
}
}
})
现在每当你有一个ng-repeat,就可以像这样使用它
<div ng-repeat="item in items" repeat-done="initFlip()">
注意:应在相同的项目范围内定义initFlip