【发布时间】:2016-11-18 06:14:30
【问题描述】:
我是 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"]
}
}]
}
});
Ember 商店
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
我不能像那样访问部门详细信息吗?如果我使用 details 属性中的注释行,我会得到所需的数据。我应该从商店单独获取每个数据吗?此外,将值记录到模型中会得到一个 Ember 类。
即使在模板文件中,也无法获取model.department-type等的值
我在 Ember chrome 检查器中正确获取了数据。 仅供参考,我使用的是 ember 2.5.1。请帮我解决这个问题。
【问题讨论】:
-
Inisde 你的模型有类型字段背后的想法是什么。您正在使用 JsonApi 适配器吗?此外,您的属性是数组,Legal..Sales...您是否要使用类似数组。我可以提供一些提示,但不确定您要如何使用部门类型...在选择内?
-
如果你不想指定转换,你应该使用
atr(),而不是attr("")。您还需要在departementDetails中执行this.get('details')。 -
model 和 details 都是 ember 可枚举的,所以你可以枚举它来获取数据.. 参考 stackoverflow.com/questions/37380384/…
标签: javascript ember.js ember-data ember-cli-mirage