我有一個帶有許多指令的大型AngularJS應用程序,其中一些是封裝的activeX控件。
我們遇到的一個問題是,如果用戶在查看activeX控件時註銷,即使我們導航到全新的.html頁面,activeX控件仍保留在頁面上。
我們總是在scope.$on("$destroy"
事件中清理我們的指令資源,我希望我可以這樣做:只要確保object
標記在銷燬時從頁面中刪除。
我發現的問題是,無論使用哪個指令作爲參考,當使用$window.location.assign
重定向到新頁面時,$destroy
事件不會被調用。
我也用$window.location.href
進行了測試,得到了同樣的結果,沒有$destroy
被擊中。
有沒有辦法確保scope.$destroy
在頁面重定向時被觸發?
據我所知,範圍沒有得到'$ destroy'事件的最可能原因是如果創建該範圍的指令/控制器沒有被包含在'ng-view'(或指令響應你的路線)HTML元素。如果是這樣的話,你需要做一些手動的工作。這個範圍不在'ngView'下面嗎? – DRobinson
我們在應用程序中所擁有的一切都在ui視圖下。因爲我們使用UI-Router。 – Blunderfest
這些類別的範圍摘要問題有時可以通過將$ destroy包裝在$ timeout中來解決。 – Rorschach120