如何在AngularJS渲染所有视图后调用函数

时间:2015-04-27 16:58:20

标签: javascript angularjs

在成功加载所有AngularJS视图后,如何调用简单函数。

function hello() {
  alert('All AngularJS works are done');
}

<!-- Below code is example about how I need a function for AngularJS loaded event -->
app.onAngularLoaded(function () { hello(); });
</script>

3 个答案:

答案 0 :(得分:4)

尝试设置值为0的超时。这将在当前的摘要周期集之后发生。

$timeout(function(){...}, 0);

答案 1 :(得分:1)

问题w。您要解决的问题是,如果您使用ng-includeui-router之类的内容,那么您将无法知道何时完成加载,直到他们被请求为止加载。这是一个随需应变的场景。

然而,您可能正在寻找角色过程的 post-bootstrapping 之类的东西?如果是这种情况,您需要在main / root角度模块上执行类似的操作:

angular.module('app', [ ... any ng-dependencies here ...])
.controller(...)
.controller(...)
.directive(...)
.service(...)

//then here is where you do your post-bootstrapping logic
.run( function(){
   //code here
})

此处有更多信息 - angular module docs

答案 2 :(得分:0)

您可以使用指令来获取它。

var homeApp = angular.module('home', ['ui.bootstrap', 'ngAnimate']);
homeApp
    .directive("pagecontent",
    function() {
        return {
            restrict: "E",
            link: function() {
                alert('All AngularJS works are done');
            },

            templateUrl: "template path",
        }