如何在Model.load()(ExtJs)中更改param id

时间:2012-08-09 16:38:22

标签: extjs model load extjs4

当我定义模型“TeMdl”然后使用Fn TeMdl.load(1)时,它将发送一个param id = 1的请求。 所以..如何更改id参数,以便请求可以这样:“...... \?uid = 1”? 我对extjs很新鲜!

1 个答案:

答案 0 :(得分:1)

来自Ext文档中的注释:

load()方法不会遵循Model的idProperty,并假设它是“id”。

以下子类通过使用idProperty而不是id来修复此行为。

Ext.define("Ux.data.Model", {
  extend: "Ext.data.Model",
  statics: {
    load: function(id, config){
      config = Ext.apply({}, config);

      var params={};
      params[this.prototype.idProperty] = id;

      config = Ext.applyIf(config, {
          action: 'read',
          params: params
      });

      var operation  = Ext.create('Ext.data.Operation', config),
          scope      = config.scope || this,
          record     = null,
          callback;

      callback = function(operation) {
          if (operation.wasSuccessful()) {
              record = operation.getRecords()[0];
              Ext.callback(config.success, scope, [record, operation]);
          } else {
              Ext.callback(config.failure, scope, [record, operation]);
          }
          Ext.callback(config.callback, scope, [record, operation]);
      };

      this.proxy.read(operation, callback, this);
    }
  }
});