私は ember フレームワークを初めて使用し、ember データへのアクセスに問題や疑問があります。デモ目的で ember-cli と ember-cli-mirage を使用しています。
config.js
export default function() {
this.get('/newcontracts', function(db, request) {
return {
data:[{
"type": "newcontracts",
"id": 1,
"attributes": {
"department-type": ["Legal", "Sales"],
"agreement-type": ["Service Agreement", "Purchase"],
"renewal-type": ["One time", "None"]
}
}]
}
});
エンバーストア
export default Model.extend({
"type": "",
"department-type": attr(""),
"agreement-type": attr(""),
"renewal-type": attr("")
});
ルーター
export default Ember.Route.extend({
model: function(){
console.log(this.get('store').findAll('newcontract')) // outputs ember class
return this.get('store').findAll('newcontract');
});
コントローラ
export default Ember.Controller.extend({
details: Ember.computed('model', function() {
return this.store.peekRecord('new-contract', 1) // --> outputs ember class
//console.log(this.store.peekRecord('new-contract', 1).get('department-type)) ---> desired output(array)
})
departmentDetails: Ember.computed('model', function() {
this.details.get('department-type') ; ///error
})
});
テンプレート
{{log "model" details}} --> ember class
{{log "model" model}} --> ember class
{{log "model" model.department-type}} --> undefined
そのように departmentDetails にアクセスできませんか? 詳細プロパティでコメント行を使用すると、目的のデータを取得できます。各データはストアから個別に取得する必要がありますか? また、モデルの値をログに記録すると、Ember クラスが得られます。
テンプレートファイルでも、model.department-type などの値が取得できません。
Ember chrome インスペクターでデータを正しく取得します。参考までに、私はember 2.5.1を使用しています。これについて私を助けてください。