1

私はここで少し立ち往生しています。私のモデルコードは

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

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

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

を使用してIDでデータをロードしようとすると

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

リクエスト URL は/fancymodel/some-id?id=some-idであり、明らかに正しくありません。では、パッチやオーバーライドなしで正しいリクエスト URL: /fancymodel/some-idを取得するにはどうすればよいでしょうか?

編集:

jsfiddle

開発者コンソールで、失敗した GET リクエストを確認できます

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

編集:

Sencha フォーラムのスレッド

4

1 に答える 1

2

ExtJS ソリューションが見つからないため、小さなパッチを作成しました (すべての状況で機能するかどうかはわかりません)。

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

標準的な方法:

Ext.define('MyPatches.data.proxy.Rest', {
    override: 'Ext.data.proxy.Rest',
    buildUrl: function (request) {
        delete request.params.id;
        return this.callParent(arguments);
    }
});
于 2013-03-14T12:18:27.840 に答える