2014-09-20 124 views
0

我期待了解页面加载一次然后返回到使用路由时角度指令的预期行为。如果我在页面上有下面的指令,当第一次加载页面时,就会到达debugger行。当我使用不同的控制器从该页面导航到另一个页面时,使用该指令返回到原始页面,该指令不会加载。这是处理不同控制器时的预期行为吗?或者应该在每次加载页面时调用指令link,无论?Angular JS指令加载解释

app.directive('directive1', function() { 
return { 
    restrict: 'E', 
    replace: true, 
    template: '<div></div>', 
    link: function (scope, element, attr) { 
     debugger; 
     console.log('directive loaded'); 
    } 
    } 
}); 

它的网页上这样

<directive1 id="mydirective" style="height:100%;"></directive1> 

流程是这样的

pg1.htm(directive)/controller1 --> pg2.htm/controller2 --> back to pg1.htm(directive)/controller1 

回答

1

由于这是SPA,您在AngularJS应用内移动,该指令是未装载每次。但是,一旦你刷新页面,它将被加载。

+0

这是否意味着您不应该在页面控制器依赖的指令中实例化对象?这就是我正在做的,它不工作。另外,你提到刷新页面,你的意思是手动由用户或从控制器? – Heinrich 2014-09-21 01:34:13