为什么我不能从setupController中定义的属性访问元?

时间:2015-08-21 09:20:49

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

setupController中,我有:

controller.set('products', 
  this.store.query('product', { 
    filter: { 'user-id': model.id }, 
    page: { number: (params.page ? params.page : 1) } 
  })
);

返回:

{
    "meta":{
        "page":{
            "number":1,
            "size":10,
            "total":17,
            "prev":null,
            "next":2,
            "first":1,
            "last":17
        }
    },
    "data":[{..}, {..}]
}

在模板中,为什么{{log products.meta}}会返回undefined

我在model hook中执行相同的查询,meta实际返回有效数据。 setupController是否有特别的事情?

1 个答案:

答案 0 :(得分:4)

您在代码中执行的操作是将控制器products属性设置为从this.store.query返回的承诺。在设置控制器上的属性之前,您希望解除该承诺:



this.store.query('product', { 
  filter: { 'user-id': model.id }, 
  page: { number: (params.page ? params.page : 1) } 
}).then(products => {
  controller.set('products', products);
});




这将确保您实际分配给products属性的是已解决的模型,而不是承诺。