试图解决此问题几天。
通常我使用Embers转换从商店获取模型:
{{1}}
这将解析为GET => DS:RESTAdapter#ajax GET到http://localhost:8080/api/numbers
但我无法找到针对此网址执行请求的方法: http://localhost:8080/api/profiles/:profile_id/workspaces
顺便说一句 http://localhost:8080/api/profiles/:profile_id不返回迭代工作空间的键。获取所有工作区的唯一方法是通过直接网址。
答案 0 :(得分:2)
这不是REST适配器构建URL的常用方法。至少你需要为工作空间模型制作一个特殊的适配器,然后你需要覆盖urlForQuery
(如果它是特定于请求的)并指定并移动_buildURL
内部的一些逻辑到那个
<强>适配器/ workspaces.js 强>
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
urlForQuery: function(query, modelName){
var url = ['api','profiles', query.profile, 'workspaces'];
delete query.profile;
var host = this.get('host');
var prefix = this.urlPrefix();
url = url.join('/');
if (!host && url && url.charAt(0) !== '/') {
url = '/' + url;
}
return url;
}
});
然后你做这样的事情:
OlaMagic.DashboardIndexRoute = Ember.Route.extend({
model: function(params) {
return this.store.query('workspace', {profile: 1});
}
});
这将生成对 / api / profiles / 1 / workspaces 的请求。
如果您只是在当前用户上请求工作区,那么只需覆盖init
适配器上的workspaces
并在其上设置更深的namespace
就足够了认证