Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何在呈现ui中的所有指令后调用控制器中的函数_Angularjs_Html_Angularjs Directive - Fatal编程技术网

Angularjs 如何在呈现ui中的所有指令后调用控制器中的函数

Angularjs 如何在呈现ui中的所有指令后调用控制器中的函数,angularjs,html,angularjs-directive,Angularjs,Html,Angularjs Directive,背景 我正在构建的angularjs页面需要在呈现页面时显示ajax加载程序。这个页面有很多指令和递归调用。因此,页面完成渲染有时需要20秒左右 问题 我无法找到页面中的所有指令是否已在页面中完成呈现。如何知道angularjs页面中的所有指令是否已在ui中完成呈现 问题? 我尝试了以下方法,以确定ui中的所有指令是否都已完成呈现…但它没有按预期工作 我创建了一个名为Initialization的指令,该指令位于页面底部。这个指令在加载时发送一个触发器 var initialisation =

背景

我正在构建的angularjs页面需要在呈现页面时显示ajax加载程序。这个页面有很多指令和递归调用。因此,页面完成渲染有时需要20秒左右

问题

我无法找到页面中的所有指令是否已在页面中完成呈现。如何知道angularjs页面中的所有指令是否已在ui中完成呈现

问题?

我尝试了以下方法,以确定ui中的所有指令是否都已完成呈现…但它没有按预期工作

我创建了一个名为Initialization的指令,该指令位于页面底部。这个指令在加载时发送一个触发器

var initialisation = function ($rootScope) {

            return {
                restrict: 'A',
                link: function($scope) {
                    var to;
                    var listener = $scope.$watch(function() {
                        clearTimeout(to);
                        to = setTimeout(function () {
                            console.log('initialised');
                            listener();
                            $rootScope.$broadcast('initialised');
                        }, 50);
                    });
                }
            };

}

app.directive('initialisation', initialisation);
在我的页面中,我已经放置了指令

<form name="mainForm">
    <div data-ng-init="pageAnimateScrollToTop();" >
    <collection collection='md.fields' data='data' fulldata='data' initialisation></collection>   
   </div> 
 </form> 

通常情况下,感谢不要,指令本身不需要花费太多时间来呈现,是否涉及到远程调用的数量?对于角度页面来说,加载时间真的很长!听起来您有一些后端问题或请求的数据太多。如果页面中的所有指令都已加载完毕,我应该做些什么来查找呢?如果没有设置一个服务来跟踪所有初始ajax调用,那么呈现通常不会花费太长时间…除非您创建了太多的元素,比如成千上万个表行还是什么的。再次…做一些分析,看看什么需要这么长时间。在当今世界,几秒钟以上是很长的时间,也可以在
ng repeat
中使用
$last
来了解大型中继器何时完成
 $scope.$on("initialised", function () {
    //calls a javascript function
      doSomething();
}