2017-03-17 51 views
2

我是初學者燼。如何將數據從路由發送到組件?

我想從路由發送數據到組件。

import Ember from 'ember'; 
var model = null; 
export default Ember.Route.extend({ 
    model() { 
     return true; 
    } 
}); 

我已經在路由中定義了這個模型,現在我想在組件js文件中使用這個模型。我只是做控制檯日誌,但它給未定義。 我的組件的js代碼低於

import Ember from 'ember'; 
export default Ember.Component.extend({ 
    didInsertElement() { 
     console.log(model); 
    } 
}); 

因此,誰能所說的其實是在組件使用的路由的數據的實際方式。

回答

4

你只返回你需要將它傳遞給模板中的數據,

import Ember from 'ember'; 
export default Ember.Route.extend({ 
    model() { 
     //here return model data which requires to display template 
     return true; 
    } 
}); 

內模板,你可以使用model訪問,在這種情況下,你只是讓你的model將包含true發送如此。

您需要將此模型傳遞給組件,以便您可以從組件訪問它。 裏面template.hbs,

{{my-component model=model }} 

可以在組件訪問模型屬性,

import Ember from 'ember'; 
export default Ember.Component.extend({ 
    didInsertElement() { 
     console.log('Model ',this.get('model')); 
    } 
}); 

歡迎灰燼。我強烈建議您閱讀ember guides並使用ember-twiddle

1

您需要將數據從模板傳遞到組件;那就是從路線的模板,你需要通過你想要的任何東西(例如模型)到相應的模型。一個簡單的演示請參見以下twiddle

在這個例子中, index路由從model鉤子返回一個json對象(名稱爲& surname字段的對象)。從這個模型鉤子返回的內容是my-component內部的index.hbs模板文件,作爲object屬性。然後您可以輕鬆訪問組件的js和hbs文件中的相應數據。在這個例子中,數據顯示在my-component.hbs模板文件中。希望它是明確的。

相關問題