2017-02-16 56 views
0

此urlForFindAll函數返回'api/live/liveSites'。 GET請求提交給'site/api/live/liveSites' 其中site是modelName。 我嘗試了與buildURL類似的代碼,而且遇到了同樣的問題。Ember urlForFindAll和BuildURL for DS.RESTAdapter prepend modelName value overreaden

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返回的url不是請求發出的url?

編輯:我在節點4和灰燼-CLI 2.11

編輯2:所以我一直有不同的API調用玩弄它實際上好像它前面加上路徑URL發出請求是... EG:如果我目前的路線是網站/編輯/ site_id,請求將發送到site/edit/site_id/api/live/liveSites

回答

0

修復:我必須在urlForFindAll中返回一個'/'。不幸的是,Ember文檔並沒有真正反映這一點。

so: return'/'+ url;

解決了這個問題。

0

您的代碼看起來很完美。只要確保您爲site模型創建了特定的Adapter模型,這可能會或可能不會擴展應用程序適配器取決於您的需要。 示例adapters/site.js

+0

隨着新的信息進入代碼,我進行了第二次編輯。有什麼想法嗎?看起來好像它實際上預先設定了路徑路徑,而不是模型名稱。 – Syzygy