發現這個代碼在一個項目的指示我的工作之一:
element.on('$destroy', function() {
scope.$destroy();
});
需要該代碼?或者我可以刪除它?指令被銷燬後,範圍是否被銷燬?
發現這個代碼在一個項目的指示我的工作之一:
element.on('$destroy', function() {
scope.$destroy();
});
需要該代碼?或者我可以刪除它?指令被銷燬後,範圍是否被銷燬?
記住,除非有您識別它的目的,實際上$destroy()
去除它的父作用域範圍,下面是)正式文件的摘錄
$摧毀(; 從父範圍中刪除當前範圍(及其所有子範圍)。刪除意味着對$ digest()的調用將不再傳播到當前作用域及其子級。去除也意味着當前範圍有資格進行垃圾回收。
另請檢查此SO Thread例如和詳細的說明。
您不必編寫此代碼。
根據文檔,在兩種情況下會觸發$destroy
事件。
取出就在作爲一個側面說明只要之前,你仍然可以使用元素的scope
在element.on('$destroy')
事件之前範圍將被銷燬:
element.on('$destroy', function() {
console.log('RIP', scope);
});
我在網站的子組件上使用類似的東西時,一些元素被我們的角度應用程序之外的父應用程序刪除,這只是摧毀一些綁定和偵聽器的方式 – maurycy
我看到的唯一一點 - 如果這是另一個元素的範圍。這仍然是**,但可能會做點什麼。 –
代碼正在調用另一個指令的編譯/追加,但我已將其刪除。 – jcubic