2013-03-13 93 views
1

我有點卡在這裏。我的模型代碼是RESTful模型,擺脫GET請求中的ID查詢參數

Ext.define('MyFancyModel', { 
    extend: 'Ext.data.Model', 

    fields: [ 
     { name: 'id', type: 'string' }, 
     { name: 'name', type: 'string' } 
    ], 

    proxy: { 
     type: 'rest', 
     url: '/fancymodel', 
     noCache: false 
    } 
}); 

當我嘗試使用

Ext.ModelManager.getModel('MyFancyModel').load('some-id', {}); 

您輸入的網址/fancymodel /一些-ID?ID =一些-ID這顯然是不正確的加載由ID數據。那麼如何才能實現正確的請求url:/fancymodel/some-id沒有任何補丁或覆蓋?

編輯:

jsfiddle

在開發者控制檯,您可以看到失敗的GET請求

http://fiddle.jshell.net/fancymodel/some-id?id=some-id 

編輯:

Thread on the Sencha forum

回答

2

我還沒有發現任何ExtJS的解決方案,所以我寫了一個小補丁(不知道它在每一個情況下):

Ext.override(Ext.data.proxy.Rest, { 
    buildUrl: function (request) { 
     delete request.params.id; 
     return this.callParent(arguments); 
    } 
}); 

standard way

Ext.define('MyPatches.data.proxy.Rest', { 
    override: 'Ext.data.proxy.Rest', 
    buildUrl: function (request) { 
     delete request.params.id; 
     return this.callParent(arguments); 
    } 
}); 
+0

我已經想過這個問題一種修補,但也許對我來說似乎是多餘的。我的意思是我正在尋找ExtJS解決方案。儘管如此,謝謝你的答案! – maxmalov 2013-03-15 05:54:59

+0

我知道你的意思,我也是這樣想的。感謝您的投票:) – leaf 2013-03-15 06:58:48