角度NG重复完成

时间:2015-07-17 17:45:57

标签: angularjs

我正在使用ng-repeat& amp;模板。 ng-repeat的每次迭代都会创建一个复选框。 我希望能够将这些复选框中的每一个转换为flipswitch(使用我已包含的第三方库),但我不知道如何准确地知道Angular如何/何时完成创建页面。 我尝试过使用ng-init和$ last但是无法解决该方法的问题。 有没有办法知道角度何时完成所以我可以运行flipswitch初始化代码?

由于

2 个答案:

答案 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