比方说,我有一个计算属性取决于其他属性。我怎样才能找出哪些更改的依赖属性触发器重新计算我的财产。除此之外,是否有任何方法来调试计算链?如何调试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. 可以Emberjs计算属性取决于其他模型属性?
- 5. Emberjs在属性
- 6. EmberJS - 将相同的值分配给相关属性时更新计算属性
- 7. Emberjs-1.0控制器中的组件和计算属性
- 8. EmberJS计算属性基于阵列不工作
- 9. EmberJS:数组作为计算属性与设置器
- 10. Emberjs - 使用计算机性能
- 11. 计算属性
- 12. 计算属性
- 13. 试图了解jQuery如何使用currentStyle计算IE8的计算属性
- 14. 计算属性中的自调用
- 15. EmberJS:如何更新模型属性
- 16. 如何将属性添加到EmberJS arrayController
- 17. Ember.JS计算属性
- 18. RavenDB - 计算属性
- 19. 如何强制包含计算属性?
- 20. 如何设置计算属性的值
- 21. 如何创建一个计算属性
- 22. 如何更新计算属性?
- 23. Ember.js - 如何获得计算属性
- 24. 如何按属性值计算对象?
- 25. 如何命名计算属性?
- 26. 如何计算属性的总和
- 27. 在ASP.NET中如何计算'name'属性?
- 28. 如何测试VueJS中的计算属性?
- 29. 如何在单元测试期间存根计算属性?
- 30. 如何通过Vuejs中的代码调用计算属性?
我想有没有简单的方法,您可能需要使用getter和setter的计算属性,并与您以前的值进行比较 – kumkanillam
我查看源代码以查看是否有任何我们可以从中受益的未公开的功能;但没有运气。可能你可以在呃讨论中提问,核心团队的成员应该给出适当的答案。我相信你没有机会只能依靠观察者而不是计算属性来了解变化的属性。祝你好运。 – alptugd