所以我希望能够按下父母上的一个按钮,该动作将动作传递给子控制器,这会切换一个值吗?
这可能吗?我只读过将动作传递给不在控制器之间的组件?
答案 0 :(得分:6)
在父控制器中有属性说isOpen
和toggleIsOpen
。在子控制器中,您可以注入父控制器并使用isOpen
属性并使用send('toggleIsOpen')
来调用父控制器方法。
controllers / parent.js
import Ember from 'ember';
export default Ember.Controller.extend({
isOpen:true,
actions:{
toggleIsOpen(){
console.log('toggleIsOpen in parent');
this.toggleProperty('isOpen');
}
}
});
controllers / parent / child.js
import Ember from 'ember';
export default Ember.Controller.extend({
parent: Ember.inject.controller('parent'),
actions:{
toggleIsOpen(){
this.get('parent').send('toggleIsOpen');
}
}
});
templates / parent / child.hbs
child {{parent.isOpen}}
<button {{action 'toggleIsOpen' }}> Toggle </button>
{{outlet}}