Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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
Javascript 为什么父模板的ui视图中的指令在转到子状态时再次执行_Javascript_Angularjs_Angular Ui Router_Angular Directive - Fatal编程技术网

Javascript 为什么父模板的ui视图中的指令在转到子状态时再次执行

Javascript 为什么父模板的ui视图中的指令在转到子状态时再次执行,javascript,angularjs,angular-ui-router,angular-directive,Javascript,Angularjs,Angular Ui Router,Angular Directive,无论何时调用子状态,都会再次加载父状态内的指令(第二次)。在调用子状态时是否可以防止加载指令 用例: module.config(function($stateProvider) { $stateProvider .state('parent', { url: 'parent', templateUrl: 'parent.html', controller: "ParentController"

无论何时调用子状态,都会再次加载父状态内的指令(第二次)。在调用子状态时是否可以防止加载指令

用例:

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>  
module.config(函数($stateProvider){
$stateProvider
.州('父'{
url:'父',
templateUrl:'parent.html',
控制器:“父控制器”
})
.state('parent.child'{
url:“/child”,
templateUrl:'child.html',
控制器:“儿童控制器”
})
});
module.directive('myDirective',function(){
返回{
链接:函数(){
log('调用指令');
}
}
})
//parent.html
转换
当您单击按钮时,myDirective再次执行,ui-viewdiv被替换为child.html

尝试以下操作:-//parent.html您无法阻止再次加载指令,原因很简单。您正在使用此内部ui视图。当您的子页面即将加载时,您的ui视图将被刷新,因此它将再次调用您的指令。请尝试以下操作:-//parent.html您无法阻止再次加载指令,原因很简单。您正在使用此内部ui视图。当您的子页面将要加载时,您的ui视图将被刷新,因此再次调用您的指令。