次のように私は現在、計算された別名を含むモデルを持って次のようにEmber.js:コンポーネントのJavaScriptから計算された別名にアクセス
model: DS.belongsTo('device-model'),
manufacturerName: Ember.computed.alias('model.manufacturer.name')
私はそれから呼び出されるコンポーネントを持っている:
{{my-component model=model}}
コンポーネントのハンドルバーテンプレートでは、{{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'をロードしようとします。 – feiiiiii
私はすでに私のビューのルートでそれをやっています。それ。 – finferflu