我有一個連接到angularjs控制器指令,像如果DOM元素被「刪除」,AngularJS Controller會被銷燬?
<my-directive id="my-unique-directive" ng-controller="MyController"></my-directive>
我的控制器內,在某些時候,我需要這個指令消失。然後我混合了一些jQuery到它,所以我可以$('#my-unique-directive').remove();
它工作正常,但我這樣做是否正確?我知道你不應該訪問控制器內部的DOM元素,但我會如何實現這個結果?
爲了測試我的控制器是否被破壞,我設置了一個函數,該函數將每秒鐘調用console.log('I'm still here');
,並且在刪除DOM元素後立即調用該函數。 (此外,該功能附加到控制器本身,而不是$範圍)
這證實了我的擔憂:控制器沒有被銷燬,即使在刪除指令後,日誌仍然顯示。
如何在銷燬DOM元素後銷燬控制器?
不確定你對這個控制器有什麼?它真的需要被銷燬嗎?一開始不要使用jQuery,也許使用ng-if =「dontShowMe」 –
是的,ng-if會爲你做這個工作http://plnkr.co/edit/t0MZrSmeAD0BQVKW9RVw?p=preview –
我以爲我需要摧毀我創建的立場,如果我要在其他地方重複使用 –