1

ExtJs4プロジェクトを継承しましたが、かなり基本的な質問があります。

次のように、アイテムの1つとして新しく追加されたチェックボックスフィールドがあるビューがあります。

{
    boxLabel: 'Test Message?',
    xtype: 'checkboxfield',
    id: 'cbTextMessage',
    checked: false,
    name: 'testMessage',
    inputValue: true,
    uncheckedValue: false
}

レコードがアクティブな場合、この値は適切なチェック状態または非チェック状態に変わります。新しいレコードを作成するとき、値はチェックボックスの値に設定されます。ただし、既存のレコードを編集する場合、モデルが元の値以外の値に更新されることはありません。

モデル:

Ext.define('PushAdmin.model.Message', {
    extend: 'Ext.data.Model',
    idProperty: 'id',

    requires: ['Proxy.ParameterProxy'],
    fields: [
        { name: 'id', type: 'int' },
        { name: 'games', type: 'auto',
            convert: function(data, model) {
                data = ( data && !Ext.isArray(data) ) ? [data] : data;
                return data;
            }
        },
        { name: 'msgEnglish', type: 'string' },
        { name: 'msgFrench', type: 'string' },
        { name: 'msgSpanish', type: 'string' },
        { name: 'testMessage', type: 'bool' },
        { name: 'sendAt', type: 'date' },
        { name: 'note', type: 'string'},
        { name: 'status', type: 'string' },


    ],

    proxy: {
        type: 'rest',
        url: '/apnsadmin/rest/Message',

        pageParam: undefined,
        startParam: undefined,
        limitParam: undefined,


        reader: {
            type: 'json',
            root: 'data',
            successProperty: 'success'
        }
    }
});

そして最後に、これは保存ボタンがクリックされたときに呼び出される関数です。

click: function () {
    var grid = this.getQueuedMessagesGrid();
    var sm = grid.getSelectionModel();

    var selectedRecord = sm.getCount() > 0 ? sm.getSelection()[0] : undefined;

    this.getMessageForm().getForm().updateRecord();

    var newRecord = this.getMessageForm().getForm().getRecord();

    if (selectedRecord!=undefined) {
        console.log(selectedRecord);
        console.log(newRecord);
        selectedRecord.save();
    } else {
        // New record!

        console.log("Saving new record");

            grid.getStore().add(newRecord);
            newRecord.save();
        }

        this.getMessageForm().setDisabled(true);
        this.getMessageForm().getForm().reset();
    }
},

私は物事がおそらく物事を行うための適切なExtJSの方法ではないことを知っていますが、これはほとんど機能しているので、私はそれの大きな塊を書き直す必要がないようにしています。このチェックボックス/ブール値フィールドをフォームに追加する際に何が間違っているのかを知りたいだけです。

4

0 に答える 0