使用ember-data 1.0.0 beta访问模板中的关系

时间:2013-09-05 06:50:13

标签: ember.js ember-data relation

App.User = DS.Model.extend({
  posts: DS.hasMany('post', {async: true})
});

App.Post = DS.Model.extend({
  body: DS.attr(),
  user: DS.belongsTo('user')
});

App.ProfileRoute = Ember.Route.extend({
  model: function(params) {
    return this.get('store').find('user', params.user_id)
  }
});

并在模板中

{{#each post in model.posts}}
  {{post.body}}
{{/each}}

json用户。我不希望在用户json中嵌入帖子

{user: { posts: [1, 2, 3] }}

这不会渲染任何东西。发生此错误后,它会从服务器接收帖子json

断言失败:你在''上查找'posts'关系但是没有加载一些相关的记录。要么确保它们都与父记录一起加载,要么指定关系是异步的(DS.attr({ async: true })

在chrome检查器中,我看到所有数据都已正确加载。 我怎么解决这个问题?我应该预加载我想在模板中使用的所有模型吗?

2 个答案:

答案 0 :(得分:0)

路由中的model函数缺少return,因此当您尝试访问model.posts时会抛出错误,因为没有模型。

App.ProfileRoute = Ember.Route.extend({
  model: function(params) {
    return this.get('store').find('user', params.user_id);
  }
});

答案 1 :(得分:0)

您是否曾尝试撰写{{#each posts}}?

为我的项目工作。

然后在每个块中写{{body}}。

让我知道,谢谢!