2017-02-16 70 views

回答

3

在父控制器中有财产说isOpentoggleIsOpen。在子控制器中,您可以注入父控制器并使用isOpen属性并使用send('toggleIsOpen')来调用父控制器方法。

Twiddle Link其证明

控制器/ parent.js

import Ember from 'ember'; 
export default Ember.Controller.extend({ 
    isOpen:true, 
    actions:{ 
    toggleIsOpen(){ 
     console.log('toggleIsOpen in parent'); 
     this.toggleProperty('isOpen'); 
    } 
    } 
}); 

控制器/父/ child.js

import Ember from 'ember'; 
export default Ember.Controller.extend({ 
    parent: Ember.inject.controller('parent'), 
    actions:{ 
    toggleIsOpen(){  
     this.get('parent').send('toggleIsOpen');  
    } 
    } 
}); 

模板/父/ child.hbs

child {{parent.isOpen}} 
<button {{action 'toggleIsOpen' }}> Toggle </button> 
{{outlet}}