後,我從rev 4
躍升至rev 11
,下面的代碼不工作了:自定義URL在Ember.Model在修訂11
App.Coffee
brand: DS.attr "string"
App.Coffee.reopenClass
url: "different/location/coffee"
我怎樣才能在rev 11
設置自定義網址?
後,我從rev 4
躍升至rev 11
,下面的代碼不工作了:自定義URL在Ember.Model在修訂11
App.Coffee
brand: DS.attr "string"
App.Coffee.reopenClass
url: "different/location/coffee"
我怎樣才能在rev 11
設置自定義網址?
你做它的存儲與替代buildUrl
:
Store: DS.Store.extend({
revision: 11,
adapter: DS.RESTAdapter.create({
buildURL: function(url) {
return 'different/location/coffee/%@'.fmt(url);
}
})
})
(配合使用pluralization
它會創造奇蹟。)
事情是,我也有其他模型。 'Model.CoffeeMachine'應該使用普通的'localhost/coffeemachines/1'。我喜歡關於'Model.reopenClass(url:「xy」)'的事情是我可以爲不同的模型使用不同的URL,併爲我的RESTful接口模擬嵌套的URL行爲。 '多元化'會爲我做嗎? – kraftwer1 2013-02-09 13:08:13
您可以爲模型實現不同的適配器,然後使用上面的'buildURL'方法。請參閱「多個適配器」:http://emberjs.com/guides/models/defining-a-store/ – Wildhoney 2013-02-09 13:10:31
這是一個有趣的方法,我會嘗試一下...... – kraftwer1 2013-02-09 13:31:44
您可以通過註冊一個適配器模式實現這一點:
App.Store = DS.Store.extend({
revision: 11,
adapter: DS.RESTAdapter.create()
});
App.Store.registerAdapter('App.Coffee', DS.RESTAdapter.extend({
namespace: 'different/location'
}));
你有什麼錯誤嗎? – intuitivepixel 2013-02-09 12:03:36
沒有,但似乎也沒有發生......它像'localhost/coffees'一樣建立了url,而'rev 4'建立了像'localhost/different/location/coffee'這樣的URL ...... – kraftwer1 2013-02-09 12:06:05
咖啡似乎對我來說,你的代碼的其他部分是攔截...你有更多的模型?你能提供更多的代碼示例嗎? – intuitivepixel 2013-02-09 12:16:20