我有以下 Emberjs 数据模型:
App.File = DS.Model.extend({
like: DS.attr('boolean'),
comments: DS.hasMany('App.Comment')
});
App.Comment = DS.Model.extend({
file: DS.belongsTo('App.File'),
comment: DS.attr('string')
});
并预加载它:
App.store.load(App.File, {id: 1, like: false});
现在我想,如果我收到这样的评论:
var f = App.store.find(App.File, 1);
var c = f.get("comments");
var c 是一个空的 EmberArray 并且请求被发送到服务器。但我没有收到请求?为什么以及如何我必须这样做?我真的不想预加载评论。
此外,如果我添加注释,还同时更改文件:
f.get("comments").createRecord({comment: "test"});
f.set("like", true);
App.store.commit();
两个请求发送到服务器。但是如果我返回以下 JSON(对于文件):
{ "id": 1, like: true }
我的第一个可见评论再次消失。为什么?我该怎么办?
感谢您的帮助!
关于你问题的第一部分:您应该在文件数据中填充评论 ID:
App.store.load(App.File, {id: 1, like: false, comments: [1, 2, 3]});
所以评论会在需要的时候延迟加载。
关于第二部分:您当然不会序列化服务器回复中的评论 ID,因此当您描述空评论列表时,评论会被重置。
您至少应该返回之前显示的评论 ID...这两个问题是相关的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)