DS.RESTAdapter目标是localhost而不是指定的主机

时间:2014-10-02 05:59:49

标签: ember.js

我已将RESTAdapter定义如下

Metabuyer.RequisitionsAdapter = DS.RESTAdapter.extend({
    namespace: "apps/purchasing",
    host: 'http://metabuyer.apiary-mock.com'
});

Metabuyer.RequisitionsSerializer = DS.RESTSerializer.extend({
    normalizePayload: function(payload) {
        return payload['data'];
    }
});

加载页面时 我收到以下错误

GET http://localhost:9000/requisitions 404 (Not Found)

它没有目标

http://metabuyer.apiary-mock.com/apps/purchasing/requisitions

在此之前,我定义了我的把手,路由器,路线,型号,商店和适配器'申请单'单数(没有附加' s')它工作正常。

目标

http://metabuyer.apiary-mock.com/apps/purchasing/requisitions

它实际上让我想知道为什么RESTAdapter附加了一个' S' (申请单)在URL的末尾,但因为它的工作原理(以及来自模拟API的URL),我并没有真正关心它。

现在我想遵循命名惯例,所以我将我的把手,路由器,路线,型号,商店和适配器的名称更改为“请购单”'然后发生错误。

感谢您在高级

中提供的帮助

1 个答案:

答案 0 :(得分:0)

您的问题是因为适配器和序列化程序不应该是多元化的,请参阅:http://emberjs.com/guides/models/customizing-adapters/

应该是Metabuyer.RequisitionAdapterMetabuyer.RequisitionSerializer

默认情况下,ember数据会将模型名称复数化以用于路径。因此,对于Requisition模型,它会向/requisitions

发出请求

如果要覆盖它,可以更改DS.RESTAdapter上的pathForType属性并返回您想要的任何路径。