2017-03-08 144 views
0

我定义我的灰烬成分“一”一些固定的数据,这样的:灰烬JS:从一个组件到另一个数据组件

// coponents/component-one.js 

import Ember from 'ember'; 
export default Ember.Component.extend({ 

someData: [ 
    { name: "Test A", numbers: [1,2,3,4,5] }, 
    { name: "Test B", numbers: [6,7,8,9,10] }, 
    { name: "Test C", numbers: [11,12,13,14,15] }, 
    ], 

    // my functions ... 

}); 

现在我有另一个组件,组件“两课”,在那里我想要做这样的事情:

// templates/coponents/component-two.hbs 

    {{#each someData as |data|}} 
     <span>{{data.name}}</span> 
    {{/each}} 

...我怎样才能访问someData组件two.js /组件two.hbs

我不知道该怎么get.this ...

+1

什么是'组件two'组件one'之间'的连接?你是否在'component-one'中加入了'component-two'?一般来说,你需要传递所需的数据,同时包括组件 – kumkanillam

+0

不,这就是问题:两个组件都在同一级别,并行类型... – Viktor

+0

然后,数据的所有者不是“组件1”,然后考虑让它父母可能是相应的控制器或路由。 – kumkanillam

回答

1

定义数组属性里面init方法,所以,这将确保每个实例将获得新的数据。

import Ember from 'ember'; 
export default Ember.Component.extend({ 

    init() { 
     this._super(...arguments); 
     this.set('someData', [ 
      { name: "Test A", numbers: [1, 2, 3, 4, 5] }, 
      { name: "Test B", numbers: [6, 7, 8, 9, 10] }, 
      { name: "Test C", numbers: [11, 12, 13, 14, 15] }, 
     ]) 
    } 

    // my functions ... 

}); 

我想,你想在component-onecomponent-two。在这种情况下,你需要传递所需的数据,

{{component-two someData=someData }} 

参考https://guides.emberjs.com/v2.11.0/components/passing-properties-to-a-component/

+1

对于'component-one'和'component-two'属于同一级别的事实,我把它放在'application.js'中,这样它就可以用于两者!谢谢 – Viktor

相关问题