gpt4 book ai didi

ember.js - EmberJS notifyPropertyChange 没有使其成为观察者?

转载 作者:行者123 更新时间:2023-12-04 23:00:49 26 4
gpt4 key购买 nike

我有一个组件,其中包含一个子组件列表(在父组件中使用 yield 绘制):

parent-component
for item in items
child-component item=item childProperty=parentProperty

在子组件内部,我在“childProperty”上有一个观察者,它可以在 parentProperty 更改时正确触发。问题是我想在属性实际上没有改变的时候触发那个观察者。

为此,在我的父组件中,我有:
this.notifyPropertyChange('parentProperty')
出于某种原因,这并没有进入子组件。这是一个 JS bin 显示:

http://emberjs.jsbin.com/caxedatogazo/1/edit

虽然我很高兴更多地讨论我的用例,但我更感兴趣的是 JS bin 是否应该工作,如果不能,为什么..

非常感谢您的帮助!

最佳答案

当您在 Controller 上调用 notifyPropertyChange 时,只有在 Controller 内注册的观察者才会收到属性更改的通知。

在您的情况下,观察者在组件 Controller 内,而不是在调用 notifyPropertyChange 的父 Controller 内。

有一种方法可以确保组件 Controller 收到属性更改的通知。这可以通过向组件添加以下方法来完成。

didInsertElement: function() {
var controller = this.get('targetObject');
controller.addObserver('foo', this, this.onDataChange);
},

我们正在做的是,获取父 Controller ,向父 Controller 注册 foo 的观察者。

这是 emberjs 的 fiddle : http://emberjs.jsbin.com/rajojufibesa/1/edit

希望这可以帮助!

关于ember.js - EmberJS notifyPropertyChange 没有使其成为观察者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25513056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com