Ember:无法访问控制器/模板中的模型数据

时间:2016-07-15 06:30:25

标签: javascript ember.js ember-data ember-cli-mirage

我是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。请帮助我。

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')