此urlForFindAll函数返回'api / live / liveSites'。 GET请求发送到'site / api / live / liveSites' 其中site是modelName。 我尝试使用buildURL代替类似的代码并遇到同样的问题。
export default DS.RESTAdapter.extend({
namespace: 'api',
urlForFindAll: function (modelName, snapshot) {
var url = this.namespace;
if (snapshot.adapterOptions.siteType === 'live') {
url += '/live/liveSites';
} else {
url +='/site/standard/standardSites';
}
return url;
}
});
这是有问题的电话。
export default Ember.Route.extend({
model () {
return this.store.findAll('site', {
adapterOptions: {
siteType: 'live'
}
}).then(function (sites) {
return sites.toArray();
});
}
})
为什么我从urlForFindAll或BuildURL返回的网址不是发出请求的网址?
编辑:我在节点4和ember-cli 2.11
编辑2:所以我一直在玩不同的API调用,实际上它似乎是在预先设置请求的路由URL ... EG:如果我当前的路线是site / edit / site_id,请求将发送到site / edit / site_id / api / live / liveSites
答案 0 :(得分:0)
您的代码看起来很完美。只需确保为Adapter
模型创建了特定site
,这可能会也可能不会扩展应用程序适配器,具体取决于您的需要。
示例adapters/site.js
答案 1 :(得分:0)
固定:我必须在urlForFindAll返回的内容前加一个'/'。不幸的是,Ember文档并没有真正反映这一点。
所以: 返回'/'+ url;
解决了这个问题。