我是ember框架的新手,我在访问ember-data时遇到了问题或疑问。我正在使用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"]
}
}]
}
});
Ember Store
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吗?如果我在details属性中使用注释行,我会得到所需的数据。我应该从商店单独获取每个数据吗?此外,在模型中记录值会给出Ember类。
即使在模板文件中,我也无法获得model.department-type等的值。
我正确地获取了Ember铬检查器中的数据。 Fyi,我正在使用ember 2.5.1。请帮助我。
答案 0 :(得分:1)
this.get('store').findAll('newcontract');
为您提供了一系列新合同。
在模板中记录model[0].department-type
将打印department-type
。
要回答您的问题,您无法在任何地方访问departmentDetails
,而是在控制器中创建一个。
此外,您无法直接访问details
等计算属性,您应始终使用get()
。所以它的this.get('details').get('department-type')
不是this.details.get('department-type')