Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 来自不同路径的Ember数据加载模型_Ember.js_Ember Data - Fatal编程技术网

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