2012-11-05 63 views
0

我在我的持久層應用程序中使用了​​,並且它一直在運行良好。我正在使用的資源之一需要一些可選的資源參數。查看餘燼源代碼,我找不到任何與設置請求參數相關的內容,但是我可能忽略了某些內容。如何在Ember-rest中添加請求參數

我的問題是,是否提供了一種方法來指定要附加到URL的請求參數?如果不是這樣,那麼關於如何將這個功能添加到餘燼中的建議將非常感謝。

例如,我與資源工作稱爲塊1附帶以下REST API:

POST /api/apps/:app_id/blockies?parent=:parent_id 
    - default :parent_id=:app_id 
    - TODO: error if the blocki cannot be placed in :parent_id 
PUT /api/blockies/:id 
PUT /api/blockies/:id?parent=:parent_id 
    - update the blocki and reparent it 
DELETE /api/blockies/:id 

正如你可以看到,當我做了put要求來更新這個資源,我可以選擇性地通一個parent_id,如果我想更新它。我想用餘燼來達到這個目的。

回答

2

您可以通過覆蓋_resourceUrl()方法完全自定義資源或資源控制器的url。例如:

_resourceUrl: function() { 
    return this._super() + '?parent=' + this.get('parent_id'); 
} 
+0

感謝您的及時迴應丹!好吧,如果我理解正確,我應該把邏輯放在當我重載'_resourceUrl()'來查看請求參數是否可用時,如果是,那麼將這些參數追加到URL。因爲parent_id不需要添加到每種類型的請求。那是對的嗎? – Aras

+0

對於您的用例來說,這似乎是正確的,Aras。順便說一下,如果您需要進一步控制請求,您還可以覆蓋Ember.ResourceAdapter混入中的_resourceRequest()或_prepareResourceRequest()(請參閱註釋)。 –