我在同一层次结构中有两个组件(兄弟姐妹)。我将模型传递给他们两个。我正在更改组件中的模型数据,并希望捕获来自另一个组件的所有更改,但组件的“更改”事件仅在用于更改值的组件上触发。它在其他组件中不起作用。我怎样才能做到这一点?我只想通过这两个组件进行沟通。
应用程序/路由/ applications.js
export default Ember.Route.extend({
model() {
return Ember.RSVP.hash({
rejectFormData: {
application_id: null,
reject_reason: null,
subject: '',
body: ''
}
});
}
});
应用程序/模板/ applications.hbs:
{{applications-list rejectFormData=model.rejectFormData}}
{{reject-dialog rejectFormData=model.rejectFormData}}
应用/组件/拒绝-dialog.js
export default Ember.Component.extend({
change() {
// this fires only when changed through this component
// I want this to fire even when changed from other components
alert('changed!');
},
actions: {
rejectApplication(formData) {
this.set('formData.application_id', 123);
}
}
});
应用程序/组件/应用-list.js
export default Ember.Component.extend({
actions: {
rejectApplication (application) {
this.set('rejectFormData.application_id', application.Application.id);
}
}
});
答案 0 :(得分:-1)
你无法做你想做的事。行动不是以兄弟的方式冒泡。您可以在一个中更改数据,并在其他数据中查看数据更改。
如果要在更改数据时执行逻辑,则需要使用observer。
<tr>