假设我有一个取决于其他属性的计算属性。如何找出依赖项属性触发器在我的属性上重新计算的更改。除此之外,有没有办法调试计算链?
答案 0 :(得分:0)
检查该属性是否由notifyPropertyChange()
方法触发。您可以使用notifyPropertyChange()
方法触发计算属性。
答案 1 :(得分:0)
如果计算属性在组件中,则可以尝试挂钩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/
didUpdateAttrs在组件的属性发生更改时运行, 但是当通过component.rerender重新渲染组件时, component.set,或模板使用的模型或服务的更改。
在重新渲染之前调用didUpdateAttrs,可以使用此钩子 更改特定属性时执行代码。这个钩子可以是一个 观察者的有效替代品,因为它将在a之前运行 重新渲染,但在属性发生变化后。
此方案的一个示例是配置文件编辑器组件。 当您正在编辑一个用户,并且用户属性已更改时,您 可以使用didUpdateAttrs来清除从中构建的任何错误状态 编辑上一个用户。
答案 2 :(得分:0)
也许LOG_BINDINGS
可以向您展示您的需求。
https://drive.google.com/open?id=0B2TTkSDC13uQRk8tZlgxengzNW8
我要做的是https://guides.emberjs.com/v2.14.0/configuring-ember/debugging/#toc_log-object-bindings在所依赖的计算中。