我已經在我的控制器中編寫代碼來清理$ destroy事件中的資源。編寫單元測試來驗證我的清理方法的操作非常簡單,但有理由懷疑這一點:我的應用程序何時會獲得$ destroy事件?我可以在瀏覽器中以用戶身份執行哪些操作以使應用程序獲得$ destroy事件?
0
A
回答
0
從文檔
刪除從父 範圍的電流範圍(及其所有的孩子)。刪除意味着調用$ digest()將不再傳播到當前作用域及其子級。刪除還意味着 當前範圍有資格進行垃圾回收。
$ destroy()通常由指令使用,如ngRepeat for 管理循環的展開。
就在範圍銷燬之前,此範圍內的 廣播$ destroy事件。應用程序代碼可以註冊$ destroy事件處理程序 ,這將使其有機會執行任何必要的清理。
請注意,在AngularJS中,還有一個$ destroy jQuery事件,其中 可用於清理DOM綁定,然後將元素從 DOM中刪除。
http://docs.angularjs.org/api/ng/type/$rootScope.Scope
這似乎有一對夫婦的破壞有關$的東西。我對這個的基本理解是,任何時候一個範圍不再需要從某個視圖導航,現在用於該視圖的控制器/範圍不再需要,或者某個DOM元素被移除$ destroy被調用。我見過的這些實際使用的地方是清理計時器或監聽器,以便內存可以被垃圾收集。
相關問題
- 1. JavaScript對象銷燬的事件處理程序
- 2. 當組件被銷燬時,Angular銷燬事件處理程序和屬性如何綁定
- 3. 如何測試事件是否包含事件處理程序?
- 4. AngularJS:如何在測試中調用事件處理程序並檢測綁定
- 5. 如何在Spring集成的集成測試中處理errorChannel事件?
- 6. 單元測試事件處理程序
- 7. 如何銷燬我的應用程序?
- 8. 如何測試RowChanging事件處理程序中的DataTable更新
- 9. angularjs銷燬和初始化事件
- 10. angularJS中的事件處理程序2
- 11. 如何在ViewModel中單元測試OnPropertyChanged事件處理程序
- 12. 如何測試事件處理程序使用酶
- 13. 我應該單元測試事件處理程序
- 14. 有多少種方式來刪除/銷燬jquery中的事件處理程序?
- 15. 如何編寫一個jasmine單元測試用例來測試angularjs中的事件處理程序
- 16. Angularjs選擇事件處理程序
- 17. 如何在Vert.x中測試事件處理程序(來自事件總線)?
- 18. JBPM 5 - 如何從TaskService註銷任務事件處理程序
- 19. 從集成測試中調用處理程序
- 20. 如何用RSpec測試我的銷燬行爲?
- 21. 集成測試的Dropwizard-Hibernate事務處理
- 22. 如何檢測JQuery對話框的「銷燬」事件?
- 23. 單元測試事件處理程序的代碼
- 24. 單元測試SharePoint中的事件處理程序?
- 25. IE中的單元測試事件處理程序
- 26. 如何在模塊/集成測試中禁用Spring SQS處理程序
- 27. QTP是否有任何事件處理程序或測試引擎事件?
- 28. Moodle 3.1-事件處理程序調試
- 29. Form OnClick事件處理程序 - 如何重疊其他事件處理程序?
- 30. 在javascript中撤銷所有鼠標事件處理程序?