0

我是 ember 框架的新手,在访问 ember 数据时遇到问题或疑问。我将 ember-cli 和 ember-cli-mirage 用于演示目的。

配置.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

我不能像那样访问部门详细信息吗?如果我使用 details 属性中的注释行,我会得到所需的数据。我应该从商店中单独获取每个数据吗?此外,在模型中记录值会给出一个 Ember 类。

即使在模板文件中,我也无法获取 model.department-type 等的值。

我在 Ember chrome 检查器中正确获取了数据。仅供参考,我使用的是 ember 2.5.1。请帮助我。

4

1 回答 1

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

于 2016-07-15T17:52:29.257 回答