3

現状では、Rest プロキシと Json リーダーを備えた ExtJS 4.1 は、次のような URI を要求します (ただし、urlencoded):

http://localhost:8000/api/v1/choice/?filter=[{"property":"question_id","value":2}]

私のサーバーは、フィルターリクエストを次のようにしたい:

http://localhost:8000/api/v1/choice/?question_id=2

プロキシの設定を見ましたが、filterParam関係がないようです。サーバーが必要とするリクエスト URI を実現する実用的な方法はありますか?

4

2 に答える 2

2

以下はきれいではありませんが、うまくいきます。いまいましいストアを修正するために...

/**
         * Customized to send ../?prop=val&prop2=val2 urls.
         */
        buildUrl: function(request) {
            var url = this.url;
            var filters = eval(request.params['filter']);
            if (filters) {
                delete request.params['filter'];
                url += '?'
                for (var i = 0; i < filters.length; i++) {
                    var filterString = filters[i].property + "=" + filters[i].value;
                    if (url.slice(url.length-1) === '?') {
                        url += filterString;
                    } else {
                        url += '&' + filterstring;
                    } 
                }
            };
            return url;
        },
于 2012-05-23T22:12:25.060 に答える
1

簡単な(簡単な)方法はありません。Proxy既存のクラスを拡張する必要があります。Ext.data.proxy.Proxyとのソースコードを見てくださいExt.data.proxy.Server。機能getParamsbuildUrl

于 2012-05-23T12:07:09.750 に答える