4
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 检查器中,我看到所有数据都正确加载。我该如何解决这个问题?我应该预加载我想在模板中使用的所有模型吗?

4

2 回答 2

0

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

App.ProfileRoute = Ember.Route.extend({
  model: function(params) {
    return this.get('store').find('user', params.user_id);
  }
});
于 2013-09-05T07:05:16.997 回答
0

你试过只写{{#each posts}}吗?

为我的项目工作。

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

告诉我,谢谢!

于 2013-09-06T23:13:54.837 回答