对单个TemplateURL ui-router多次调用viewContentLoaded事件

时间:2015-04-25 15:22:12

标签: angularjs angular-ui-router

我的观点是

 <div class="wrapper" ui-view>
        @RenderBody()
    </div>

呈现名为_BodyLayout的模板的状态是

(function () {
    angular.module('ngApp').config(configuration);

    configuration.$inject = ['$stateProvider'];

    function configuration($stateProvider) {

        $stateProvider.state('dashboard', {
            url: '/dashboard',
            templateUrl: '/Shared/_Bodylayout',
        });
    }

})(angular);

我有一个run方法,模板在呈现为:

时,应该为模板注册一次所有插件
(function () {
    'use strict';
    angular.module("ngApp").run(run);

    run.$inject = ['$rootScope', 'plugin-factory', '$timeout'];

    function run($rootScope, plugins, $timeout) {

        $rootScope.$on('$viewContentLoaded', function (event) {
             plugins.run();
        });
    }

})(angular);

但是在console.log上显示此事件多次运行,plugins.run()方法已被调用至少5次templateURL!这使我的侧边栏插件表现得很奇怪。

有谁可以告诉我为什么它运行5次而不是一次运行一个templateURL?

enter image description here

0 个答案:

没有答案