0
我正在使用指令來呈現樹狀數據。 由於數據可以被過濾。 當我清除過濾器;我希望我的指示能夠對數據中的新變化作出響應並進行更新,但事實並非如此。 只有當我更改視圖/路線指令得到更新。如何在Angular中重新編譯指令?
我試圖在清除過濾器事件
$scope.$on('clearingStockFilter', function() {
$timeout(function() {
$compile($element.contents())($scope);
},300);
});
執行這個代碼,但我最終與製作克隆的指令,所以我開始看到數據在兩次查看
如果指令設計正確,則在數據更改時不需要重新編譯指令。此外,$ compile服務會在每次執行時添加觀察者的範圍。這將導致內存泄漏和觀察者重複。請顯示整個指令的代碼,以便我們可以推薦更好的方法。 – georgeawg
georgeawg我同意如果數據發生變化,指令不需要重新編寫;但我正在使用「angular-bindonce」,因爲我正在處理大量數據;因此我試圖重新編譯關於特定事件的指令。 https://stackoverflow.com/users/5535245/georgeawg – SMH
如果代碼使用路由器,重新加載視圖將重置[一次性綁定](https://docs.angularjs.org/guide/expression #一次性綁定)沒有內存泄漏。如果您編寫的指令具有相同的功能,那麼該指令需要解決該問題。 – georgeawg