Javascript 存储代理外部参数检索记录

Javascript 存储代理外部参数检索记录,javascript,extjs,model-view-controller,store,Javascript,Extjs,Model View Controller,Store,我需要将一些数据发送到存储代理,而不是重新加载存储,我只想获取该记录。这能做到吗 var newRecord = documentStore.getProxy().extraParams = {id:element.data.id}; 类似上面的东西当然不起作用如果数据/记录已经加载到存储中,那么您可以使用或方法获取它 但如果您想要存储中未加载/不可用的记录,则需要使用所需的值(筛选器)重新加载存储 更新: 好的,您可以捕获第一个网格的or事件,加载第二个网格存储并传递所需的过滤参数,或者

我需要将一些数据发送到存储代理,而不是重新加载存储,我只想获取该记录。这能做到吗

 var newRecord =  documentStore.getProxy().extraParams = {id:element.data.id};

类似上面的东西当然不起作用

如果数据/记录已经加载到存储中,那么您可以使用或方法获取它

但如果您想要存储中未加载/不可用的记录,则需要使用所需的值(筛选器)重新加载存储

更新:


好的,您可以捕获第一个网格的or事件,加载第二个网格存储并传递所需的过滤参数,或者您可以创建AJAX请求,获取响应并生成记录并将其添加到其他存储。

如果您的模型上有代理,您可以使用静态“加载”方法,即如果您有模型“联系人”您可以这样做:

Contact.load("ID_VALUE", {
     scope: this,
     callback: function (record, operation, success) {
     }
});

听起来好像您正试图从一个项目列表中选择一条记录,检索所选项目的其他数据,然后将该项目添加到现有存储中

如果这是错误的,请纠正我。但是,根据这个假设,你可以在一个模型上有一个加载方法,正如布顿所建议的那样。在模型返回时(即回调),您将通过Ext.data.Store.add(model)方法将该模型添加到存储中。这将把记录添加到数据存储中,而无需重新加载存储中的所有数据

也许更优雅的方法是创建自己的商店(即myApp.store.MyStore),扩展Ext.data.store。然后,创建自己的方法,该方法接受一个标识符(或多个标识符),可以将模型加载到存储中,而无需重新加载整个存储

Ext.define('MyApp.store.MyStore' {
  extend: 'Ext.data.Store',
  requires: 'Ext.data.reader.Json',
  model: 'MyApp.model.MyModel',
  loadMyModel: function (id) {
    Ext.Ajax.request({
      url: 'someurl',
      params: {id: id},
      success: function (resp) {
        var myModel = null; // parse response into MyModel
        this.add(myModel);
      },
      scope: this
    });
  }
});

它不在商店里,我需要在不重新装填商店的情况下拿到它。你能告诉我你到底想做什么吗?我的意思是功能我有两个网格。单击某个项目时,我想加载一个新元素,并将其添加到另一个网格(多选)。有没有办法向商店发送多个ID?