ember.js 可组合组件

例子

里面 parent-component.hbs

{{yield (hash
   child=(
     component 'child-component'
     onaction=(action 'parentAction')
   )
)}}

里面 parent-component.js

export default Ember.Component.extend({
  actions: {
    // 我们将此操作传递给孩子,由其自行决定调用
    parentAction(childData) {
      alert('Data from child-component: ' + childData); 
    }
  }
});

里面 child-component.js

export default Ember.Component.extend({
  // 单击时,我们调用从父级传递给我们的操作
  click() {
    let data = this.get('data');
    this.get('onaction')(data); 
  }
});

里面 usage.hbs

{{#parent-component as |ui|}}
  {{#each model as |item|}}
    {{ui.child data=item}}
  {{/each}}
{{/parent-component}}