2013-03-13 84 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