2

いくつかの初期値をハードコーディングしたいストアがあります。次に、サーバーからロードするときに、結果を置き換えるのではなく、結果を初期値に追加します。これは可能ですか?

これは私が現時点で持っているものです:

var myStore = Ext.create("Ext.data.Store",{
  autoLoad: true,
  fields:[
    {name:"id", type:"int"},
    {name:"username", type:"string"}
  ],
  data: [
    {id: 1, name: "User1"},
    {id: 2, name: "User2"}
  ],
  proxy: {
    type: 'ajax',
    url: 'users.php?method=getUsers',
    reader: {
      type: 'json',
      root: 'results'
    }
  }
});

PHPスクリプトから返されたデータを、すでにストアにある「User1」と「User2」に追加したいと考えています。

4

2 に答える 2

6

これを試してください:

store.load({
    addRecords: true
})
于 2013-07-09T12:27:34.957 に答える
0

最終的にたどり着いた解決策は、ストアのロード イベントにリスナーをインストールし、ストアがリロードするたびにデフォルト データを手動で追加することでした。

var myStore = Ext.create("Ext.data.Store",{
  autoLoad: true,
  fields:[
    {name:"id", type:"int"},
    {name:"username", type:"string"}
  ],
  proxy: {
    type: 'ajax',
    url: 'users.php?method=getUsers',
    reader: {
      type: 'json',
      root: 'results'
    }
  },
  listeners: {
    load: function(){
      var me = this;
      me.add({id: 1, name: 'User1'});
      me.add({id: 2, name: 'User2'});
    }
  }
});

これでも、毎回ストアにデータを追加する方法の問題は解決されませんが、幸いなことに、この解決策は私にとっては問題ありません!

于 2013-07-09T11:42:20.753 に答える