为什么在进入子状态时,父模板的ui-view内的指令再次执行

时间:2016-03-02 12:33:58

标签: javascript angularjs angular-ui-router angular-directive

每当调用子状态时,将再次加载父状态内的指令(第二次)。是否可以在调用子状态时阻止加载指令?

用例:

module.config(function($stateProvider) {
  $stateProvider
    .state('parent', {
            url: 'parent',
            templateUrl: 'parent.html',
            controller: "ParentController"
        })
   .state('parent.child',{
            url:'/child',
            templateUrl: 'child.html',
            controller: "ChildController"
        })
});

module.directive('myDirective', function() {
    return {
        link: function() {
            console.log('directive is called');
        }
    }
})

//parent.html
<div ui-view>
    <my-directive></my-directive>     
</div>

<button type="button" ui-sref="parent.child">Switch</button>  

当您点击该按钮时, myDirective 会再次执行,而 ui-view div将替换为 child.html

0 个答案:

没有答案