AngularJS:使用4个嵌套的$ timeout调用渲染后执行函数

时间:2017-06-16 18:27:40

标签: angularjs

我在我的指令中嵌套了ng-repeat构造,如下所示:

<calendar>
    <div class="calendar-row" ng-repeat="calendarRow in calendarRows">
       <calendar-day ng-repeat="calendarDay in calendarRow.days" />
    </div>
</calendar>

我需要在渲染完所有内容后执行一个函数。 如果我将函数包装在4个嵌套$timeout调用中,我将实现此目的:

$timeout(function() {
    $timeout(function() {
        $timeout(function() {
            $timeout(function() {
                myFunc();
            });
        });
    });
});

它像黑客一样找我。是否可以减少$timeout来电?我不明白为什么我的案子需要4个电话。 或者它是更优雅的实现方式吗?

1 个答案:

答案 0 :(得分:0)

一个解决方案就是:

<calendar>
    <div class="calendar-row" ng-repeat="calendarRow in calendarRows">
       <calendar-day ng-init="$last && myFunc()" ng-repeat="calendarDay in calendarRow.days" />
    </div>
</calendar>