2017-03-08 141 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

相關問題