0
我目前有包含一個計算一個別名模型,如下:Ember.js:從部件的javascript訪問計算別名
model: DS.belongsTo('device-model'),
manufacturerName: Ember.computed.alias('model.manufacturer.name')
我然後有時調用的組件,如下所示:
{{my-component model=model}}
現在,在組件的Handlebars模板中,我可以使用{{model.manufacturerName}}
輕鬆訪問計算屬性,但是在my-component.js
中,我無法使其正常工作。我曾嘗試用:
console.log(this.get('model').get('manufacturerName'))
然而,輸出爲undefined
。到目前爲止,我可以從我-component.js得到製造商的名稱的唯一方法是:
this.get('model').get('model')
.then((model) =>{
return model.get('manufacturer')
})
.then((manufacturer) => {
console.log(manufacturer.get('name'))
})
所以,我想知道什麼是車把模板做,我不能在它的JavaScript對應呢?看起來Handlebars模板遵循承諾,而當涉及到組件的javascript時,我必須手動完成。
謝謝!
感謝您的反饋意見。我明白你的意思,但問題是,爲什麼Handlebars模板可以訪問該屬性,但是它的JavaScript對應模塊卻不能?我必須在組件的JavaScript中做額外的步驟? – finferflu
這很奇怪,我從來沒有遇到過這個。要麼他們都工作,要麼他們都不工作。我懷疑你的控制檯日誌是在加載模型「設備模型」之前發生的。並且hbs中的{{model.manufacturerName}}會刷新或加載。我會嘗試在您調用像this.store.findAll('device-model')這樣的組件之前在您的視圖的路線中加載'device-model', – feiiiiii
我已經這麼做了,在我的視圖中,那。 – finferflu