知道依赖键中的哪个导致计算的属性更改

Posted

技术标签:

【中文标题】知道依赖键中的哪个导致计算的属性更改【英文标题】:Know which among the dependent keys caused the computed property change 【发布时间】:2017-02-18 20:27:06 【问题描述】:

在 Ember 中,有没有办法获取依赖键中的哪个导致计算属性重新计算?

例如:

myProp: Ember.computed('dep1','dep2','dep3', function()
    console.log('MyProp was recalculated due to a change in property :' <dep 1,2 or 3(get the value here)>);
    return ...;
),

如果我需要提供任何其他详细信息,请告诉我。

【问题讨论】:

【参考方案1】:

简短回答:不,那不可能。

长答案:您可以保存所有依赖项并在重新计算时进行比较。

【讨论】:

【参考方案2】:

如果您在 component.js 中,您可以检查 didUpdateAttributes(options) 其中 options 包含更新属性的旧值和新值。

【讨论】:

关于 Omar 答案的注释:这不完全是您是否“在”组件中,而是这些属性更改是否会影响组件的生命周期。例如,如果您将组件插入到像 blog-post title=title body=body 这样的 .hbs 模板中,您可以在 didUpdateAttributes 挂钩中观察到组件属性 titlebody 的任何变化。但不是该组件严格内部的任何其他属性(计算的或非计算的)(不影响它的生命周期)。见guides.emberjs.com/v2.9.0/components/the-component-lifecycle

以上是关于知道依赖键中的哪个导致计算的属性更改的主要内容,如果未能解决你的问题,请参考以下文章

计算机软件的默认安装目录是哪个盘

计算属性相互依赖,在 Vue 1 和 2 上具有不同的行为

计算机网络上有重名是啥意思?如何更改!

vue计算属性相关实例

vue计算属性相关实例

对挂载中的属性的更改未触发在 VueJS 中计算