我已经创建了一个注释模型,并试图获取所有的注释记录。但我需要一个元信息总注释,这是一个单独的属性外部评论数组。
我正在使用Ember store.query从rest服务中获取记录(,我尝试了store.findAll,但它只给了我记录数组的注释,以保证响应)。可以修改吗?)。在使用()时,我将获得带有总注释(Meta)的记录,但是当我们保存新记录时,该记录数组是不更新的。
在做了一些分析之后,我发现我们可以使用filter来加载活动记录,但是filter现在在Ember中被废弃了(Ember 2.5.1)。从文档中可以清楚地看到,我们可以使用加载实时记录。但是我很困惑地使用这个副词(就像提到它有一些内存泄漏问题一样)和不确定我是否会从响应获得元信息。是否有其他方法从响应中获取具有元信息的实时记录。
任何人都请提出解决办法
发布于 2016-06-14 04:02:29
在进行了一些分析之后,我找到了一个使用store.findAll()访问元数据的解决方案。我们可以在响应中使用typeMapFor来获取响应中的元信息。
store.typeMapFor(response.type)下面是完整代码,
store.findAll("comment").then(function(response) {
var meta = store.typeMapFor(response.type);
// your meta info will be in meta.metadata
// var totalComments = meta.metadata.totalComments;
});响应记录数组是liveRecords,如果我们保存新记录,它将自动更新。
store.query("comment").then(function(response) {
var meta = response.get("meta");
// We will get meta like this but reponse record array is not a liveRecords
});从store.query()获得的响应只是一个recordArray (而不是liveRecords),它不会使用新记录进行更新
发布于 2016-06-14 00:53:42
如果您想要填充作为新记录更新的所有记录的数组,则可以使用peekAll,它返回一个活动记录数组。
添加了代码示例:
loadRecords: function (){
this.set('allComments', store.peekAll('comment'));
this.store.findAll('comment');
},
recordCount: Ember.computed.alias('allComments.length')https://stackoverflow.com/questions/37746529
复制相似问题