1

私は、他のフィールドから計算されるフィールドの束を持つモデル (グリッドで使用) を持っています。

現在、フィールドで convert 関数を呼び出すことが最善の方法であることがわかりました (間違っている可能性があります)。問題は、私のグリッドには、この方法で計算される列がたくさんあることです。これらのフィールドに影響する値が変更された場合、それらのフィールドは再計算されません。

以下の記述によると、これを修正する方法は set メソッドを上書きすることです: http://flexblog.faratasystems.com/2012/02/07/computed-fields-in-extjs-models-via-convert-functions

これに関する問題は、影響を受けるフィールドが多数 (約 40) あり、影響を受けるすべての列でセットを呼び出すと、コードが適切に表示されないことです。すべてが再計算されるようにモデルを更新する方法、またはこの問題を解決する他の方法はありますか?

4

1 に答える 1

0

独自のタイプのフィールドを作成できます。これは、次の方法で行うことができます。

// define date type that converts to an array
Ext.data.Types.ARRAY = {
    convert: function (value, record) {
        if (!Ext.isArray(value)) {
            return [];
        }
        else {
            return value;
        }
    },
    type: 'array'
};

あなたのフィールドは、{name: 'fieldName', type: 'array'}

于 2013-04-29T06:42:16.733 に答える