sly*_*7_7 12 javascript ember.js ember-data
让我们说
Post = DS.Model.extend({
comments: DS.hasMany({async: true})
})
Comment = DS.Model.extend({
post: DS.belongsTo()
})
Run Code Online (Sandbox Code Playgroud)
并且我必须使用该links功能,否则由于对帖子的评论过多而导致414错误.
自此提交https://github.com/emberjs/data/commit/4d717bff53f8c93bedbe74e7965a4f439882e259
似乎不可能触发post.get('comments')的重新加载,即发送GET请求,例如post/42/comments.
那有什么解决方案吗?
Mar*_*ior 15
UPDATE
就像@ sly7_7在下面的答案中说的那样,这个功能现在可以在ember-data中使用了.因此,如果您使用的是1.0.0-beta.11或更高版本,则不需要此代码
您可以重新打开ManyArray,并创建一个名为的新方法reloadLinks().具有以下内容:
var get = Ember.get;
DS.ManyArray.reopen({
reloadLinks: function() {
var records = get(this, 'content'),
store = get(this, 'store'),
owner = get(this, 'owner'),
type = get(this, 'type'),
name = get(this, 'name'),
resolver = Ember.RSVP.defer();
var meta = owner.constructor.metaForProperty(name);
meta.type = type;
var link = owner._data.links[meta.key];
store.findHasMany(owner, link, meta, resolver);
}
});
Run Code Online (Sandbox Code Playgroud)
用法如下:
comments.reloadLinks();
Run Code Online (Sandbox Code Playgroud)
看看那个小提琴http://jsfiddle.net/H6Gqf/
感谢@igorT,这是实现的.https://github.com/emberjs/data/pull/2297
现在,ManyArray有一个reload()方法,如果尚未加载关系,你甚至可以调用它.
您可以通过阅读测试来查看一些用例
| 归档时间: |
|
| 查看次数: |
5650 次 |
| 最近记录: |