2014-09-20 75 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