Javascript 子组件之间的余烬触发操作
在我的Ember应用程序中,我有一个父组件“a”,它有两个子组件“B”和“C”Javascript 子组件之间的余烬触发操作,javascript,jquery,ember.js,Javascript,Jquery,Ember.js,在我的Ember应用程序中,我有一个父组件“a”,它有两个子组件“B”和“C” 我的问题是: 如何触发组件B到组件C之间的动作(即两个子组件之间的通信) 只需添加一点,this.sendAction从B到C不起作用您不起作用。就这么简单。然而,还有其他方法可以实现同样的目标 基本模式应该是: 组件B触发对组件A的操作 组件A更改绑定到组件C的值 现在组件C知道操作发生了 这就是一般的余烬流:DDAU(数据下降动作上升) 如果您想要一些封装,可以使用上下文组件,将组件B和C组合在一起,并为它们提供
我的问题是:
如何触发组件B到组件C之间的动作(即两个子组件之间的通信)
只需添加一点,
this.sendAction
从B到C不起作用您不起作用。就这么简单。然而,还有其他方法可以实现同样的目标
基本模式应该是:
B
触发对组件A
的操作A
更改绑定到组件C
的值C
知道操作发生了B
和C
组合在一起,并为它们提供一个共享状态
举个简单的例子:
{{component-b onsomething=(action 'myAction')}}
{{component-c state=state}}
现在在component-b
中,您可以执行get(这个'myAction')('newState')
。在组件A
(父级)中,您有操作myAction
:
myAction(newState) {
set(this, 'state', newState);
}
例如,在组件c内部,您可以使用computed属性根据状态计算某些内容:
shouldDisplaySomeButton: computed('state', {
get() {
return get(this, 'state') === 'newState';
}
}),
你没有。就这么简单。然而,还有其他方法可以实现同样的目标 基本模式应该是:
B
触发对组件A
的操作A
更改绑定到组件C
的值C
知道操作发生了B
和C
组合在一起,并为它们提供一个共享状态
举个简单的例子:
{{component-b onsomething=(action 'myAction')}}
{{component-c state=state}}
现在在component-b
中,您可以执行get(这个'myAction')('newState')
。在组件A
(父级)中,您有操作myAction
:
myAction(newState) {
set(this, 'state', newState);
}
例如,在组件c内部,您可以使用computed属性根据状态计算某些内容:
shouldDisplaySomeButton: computed('state', {
get() {
return get(this, 'state') === 'newState';
}
}),