Ember.js 如何调试emberjs计算属性
假设我有一个依赖于其他属性的计算属性。如何找出依赖项属性上的哪个更改触发了对我的属性的重新计算。除此之外,还有什么方法可以调试计算链接吗?检查属性是否由Ember.js 如何调试emberjs计算属性,ember.js,Ember.js,假设我有一个依赖于其他属性的计算属性。如何找出依赖项属性上的哪个更改触发了对我的属性的重新计算。除此之外,还有什么方法可以调试计算链接吗?检查属性是否由notifyPropertyChange()方法触发。您可以使用notifyPropertyChange()方法触发计算属性。如果您的计算属性位于组件中,您可以尝试挂接到didUpdateAttrs钩子中didUpdateAttrs在传递到组件的值更新时激发。在DidUpdateATTR中,您可以通过比较旧值/新值来检查更改了哪些属性 did
notifyPropertyChange()
方法触发。您可以使用notifyPropertyChange()
方法触发计算属性。如果您的计算属性位于组件中,您可以尝试挂接到didUpdateAttrs
钩子中<代码>didUpdateAttrs在传递到组件的值更新时激发。在DidUpdateATTR中,您可以通过比较旧值/新值来检查更改了哪些属性
didUpdateAttrs: function(attrs) {
// attrs should have access to the old/new values
}
didUpdateAttrs在组件的属性发生更改时运行,
但当组件通过component.rerender重新渲染时,
或模板使用的模型或服务中的更改
在重新加载之前调用didUpdateAttrs,您可以使用此钩子
更改特定属性时执行代码。这个钩子可以是一个钩子
观察员的有效替代方案,因为它将在
重新渲染,但在属性更改后
此场景的一个示例是概要文件编辑器组件。
在编辑一个用户时,如果用户属性发生更改,则
可以使用didUpdateAttrs清除从中建立的任何错误状态
编辑上一个用户
也许
LOG\u绑定可以向您显示您需要的内容。
我要做的是在所依赖的计算机中。我想没有简单的方法,您可能需要将computed属性与getter和setter一起使用,并与您以前的值进行比较。我查看源代码,以查看是否有任何未记录的功能可以从中受益;但是没有运气。也许你可以在余烬讨论会上提问,核心团队的某个人应该给出适当的答案。我相信你没有机会,只能依靠观察者而不是计算属性来了解属性的变化。祝你好运。请注意,在生命周期钩子方法中使用attrs
是不可取的,而notifyPropertyChange
被认为是私有API。我不鼓励使用它。这是一种气味;它的使用通常意味着代码需要重构。而且,它也不能回答这个问题。