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 回答