比方說,我有一個計算屬性取決於其他屬性。我怎樣才能找出哪些更改的依賴屬性觸發器重新計算我的財產。除此之外,是否有任何方法來調試計算鏈?如何調試emberjs計算屬性
回答
檢查屬性是否由notifyPropertyChange()
方法觸發。您可以使用notifyPropertyChange()
方法來觸發計算出的屬性。
「notifyPropertyChange」被認爲是私有API。我不會鼓勵它的使用。這是一種氣味;它的用法通常意味着代碼需要重構。 此外,它不回答問題。 – givanse
如果您的計算屬性在組件中,您可以嘗試掛鉤didUpdateAttrs
掛鉤。 didUpdateAttrs
當傳入組件的值更新時觸發。在didUpdateAttrs中,您可以通過比較舊/新值來查看哪些attrs發生了變化。
didUpdateAttrs: function(attrs) {
// attrs should have access to the old/new values
}
https://guides.emberjs.com/v2.6.0/components/the-component-lifecycle/
當組件的屬性在模型中有變化,但 不當部件被重新呈現時,通過component.rerender, component.set,或改變didUpdateAttrs運行或模板使用的服務。
在重新渲染之前調用了didUpdateAttrs,當特定屬性發生更改時,可以使用此鉤子執行代碼 。該鉤子可以是觀察者的有效替代品,因爲它將在重新渲染之前但在屬性發生變化之後運行。
這種情況的實例是配置文件編輯器組件。 由於您正在編輯一個用戶,並且用戶屬性發生更改,因此您可以使用didUpdateAttrs清除編輯前一個用戶時從 構建的任何錯誤狀態。
只要注意在生命週期鉤子方法中使用'attrs'已棄用 – kumkanillam
也許LOG_BINDINGS
可以告訴你你需要什麼。 https://guides.emberjs.com/v2.14.0/configuring-ember/debugging/#toc_log-object-bindings
我要做的是set breakpoints在被計算的依賴。
- 1. EmberJS - 觀察計算屬性
- 2. EmberJs - 計算屬性和模板
- 3. EmberJS計算屬性基於陣列不工作
- 4. 計算屬性
- 5. EmberJS:如何更新模型屬性
- 6. 試圖瞭解jQuery如何使用currentStyle計算IE8的計算屬性
- 7. 計算屬性中的自調用
- 8. MVVM計算屬性
- 9. RavenDB - 計算屬性
- 10. EmberJS - 計算異步關係
- 11. 在ASP.NET中如何計算'name'屬性?
- 12. 如何更新計算屬性?
- 13. 如何設置計算屬性的值
- 14. 如何計算屬性的總和
- 15. 如何強制包含計算屬性?
- 16. 如何測試VueJS中的計算屬性?
- 17. 如何通過Vuejs中的代碼調用計算屬性?
- 18. 如何計算一個計算出的屬性?
- 19. Magento - 已計算產品屬性(屬性)
- 20. 修改Emberjs的屬性
- 21. EmberJS:刷新數據模型並不會更新關聯的計算屬性
- 22. C#調試屬性
- 23. Emberjs捉住22 - 父計算性質計算的hasMany相關對象
- 24. Aurelia計算屬性與ES5
- 25. 語義mediawiki屬性計算
- 26. 計算屬性不觸發
- 27. Vue JS AJAX計算屬性
- 28. 計算嵌套屬性Vuejs
- 29. 類和計算的屬性
- 30. Vue.js循環計算屬性
我想有沒有簡單的方法,您可能需要使用getter和setter的計算屬性,並與您以前的值進行比較 – kumkanillam
我查看源代碼以查看是否有任何我們可以從中受益的未公開的功能;但沒有運氣。可能你可以在呃討論中提問,核心團隊的成員應該給出適當的答案。我相信你沒有機會只能依靠觀察者而不是計算屬性來了解變化的屬性。祝你好運。 – alptugd