Ember.js 来自不同路径的Ember数据加载模型
我有一个带有路由的后端:Ember.js 来自不同路径的Ember数据加载模型,ember.js,ember-data,Ember.js,Ember Data,我有一个带有路由的后端: 资源:电影可以 收藏办 获取:草稿 结束 结束 store.find('movie')将从/movies加载,但我想从/movies/drafts加载 查找程序有“后缀”选项,因此我意识到我需要编写自定义查找程序。 有人能举个例子吗 我尝试了以下代码: App.Movie.class({ findDrafts:函数(存储){ $.getJSON('/movies/drafts',函数(有效负载){ store.pushPayload(“电影”,有效载荷); }); 退
资源:电影可以
收藏办
获取:草稿
结束
结束
store.find('movie')将从/movies加载,但我想从/movies/drafts加载
查找程序有“后缀”选项,因此我意识到我需要编写自定义查找程序。
有人能举个例子吗
我尝试了以下代码:
App.Movie.class({
findDrafts:函数(存储){
$.getJSON('/movies/drafts',函数(有效负载){
store.pushPayload(“电影”,有效载荷);
});
退货商店。全部(“电影”);
}
})
但是#pushPayload从不返回模型数组,因此我使用store.all,但它返回存储中的所有对象。我只需要通过自定义ajax请求检索模型
还有store.pushMany返回一组模型,但它需要标准化的负载。在将json传递给pushMany之前,规范化json的正确方法是什么
我不能只替换适配器中的buildURL,因为我也想使用默认URL
更新:
可能的解决办法:
App.Store=DS.Store.extend({
修订:11,
findAllByUrl:函数(类型、url){
var self=这个;
var promise=Ember.Deferred.create();
$.getJSON(url、函数(有效负载){
var serializer=self.serializerFor(类型);
payload=serializer.extractArray(self,self.modelFor(type),payload);
var objects=self.pushMany(类型、有效载荷);
承诺、解决(目标);
});
回报承诺;
}
});
var records=this.get('store').findAllByUrl('movie','/movies/drafts');
对于这样简单的用例,它似乎过于冗长。有什么想法和改进吗?我遗漏了什么吗?如果可能的话,你真的应该考虑迁移到Ember Data 1.0 beta版。事情发生了很大的变化 在最新版本中,您可以覆盖
适配器中的pathForType
函数
该转换
文档对进行更新非常有帮助。我很紧张。我无法重写pathForType
,因为我还想从/movies
加载。以及其他收集活动,如movies/top\u rated
或movies/most\u-view
。