dom之后的回调函数以角度加载

时间:2015-04-21 04:40:45

标签: javascript jquery angularjs dom

我在HTML中有一个代码片段,我正在进行ng-repeat以获取一个盒子列表。 一旦dom准备就绪,我需要调用一个jquery插件来调整大小。 但在dom准备好之前,插件被调用并且没有任何内容被渲染。

任何人都可以帮助我,因为如何通知dom更新或dom准备就绪,以便我可以调用我的插件。

由于

2 个答案:

答案 0 :(得分:2)

我们可以使用angular.element(document).ready()方法为文档准备好时附加回调。我们可以简单地在控制器中附加回调,如此

function MyCtrl($scope) {
    angular.element(document).ready(function () {
        console.log('Hello World');
    });
}

Demo

取自:https://stackoverflow.com/a/18646795/2025923

答案 1 :(得分:0)

看起来你正在寻找一种在渲染内容时完成ng-repeat时得到通知的方法。您可以创建这样的指令。

app.directive('ngRepeatEnd', function($rootScope){
                return {
                    restrict:'A',                   
                    link:function(scope, element, attrs){
                        if(scope.$last){                                
                            $rootScope.$broadcast('ArrayUpdated');                      
                        }
                    }
                };
            });

由于该指令的操作范围与ng-repeat相同,因此您可以访问ng-repeat提供的$last变量。 $ last对于最后一个重复值是真的。因此,通过这个,我们可以广播一个事件并在控制器中捕获它。

app.controller('DefaultController', function($scope){
      $scope.$on('ArrayUpdated', function(){
            //Your callback content here.
    });
});