MemoryProxy.js
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:3k
源码类别:

中间件编程

开发平台:

JavaScript

  1. /*!  * Ext JS Library 3.0.0  * Copyright(c) 2006-2009 Ext JS, LLC  * licensing@extjs.com  * http://www.extjs.com/license  */ /**
  2.  * @class Ext.data.MemoryProxy
  3.  * @extends Ext.data.DataProxy
  4.  * An implementation of Ext.data.DataProxy that simply passes the data specified in its constructor
  5.  * to the Reader when its load method is called.
  6.  * @constructor
  7.  * @param {Object} data The data object which the Reader uses to construct a block of Ext.data.Records.
  8.  */
  9. Ext.data.MemoryProxy = function(data){
  10.     // Must define a dummy api with "read" action to satisfy DataProxy#doRequest and Ext.data.Api#prepare *before* calling super
  11.     var api = {};
  12.     api[Ext.data.Api.actions.read] = true;
  13.     Ext.data.MemoryProxy.superclass.constructor.call(this, {
  14.         api: api
  15.     });
  16.     this.data = data;
  17. };
  18. Ext.extend(Ext.data.MemoryProxy, Ext.data.DataProxy, {
  19.     /**
  20.      * @event loadexception
  21.      * Fires if an exception occurs in the Proxy during data loading. Note that this event is also relayed
  22.      * through {@link Ext.data.Store}, so you can listen for it directly on any Store instance.
  23.      * @param {Object} this
  24.      * @param {Object} arg The callback's arg object passed to the {@link #load} function
  25.      * @param {Object} null This parameter does not apply and will always be null for MemoryProxy
  26.      * @param {Error} e The JavaScript Error object caught if the configured Reader could not read the data
  27.      */
  28.        /**
  29.      * MemoryProxy implementation of DataProxy#doRequest
  30.      * @param {String} action
  31.      * @param {Ext.data.Record/Ext.data.Record[]} rs If action is load, rs will be null
  32.      * @param {Object} params An object containing properties which are to be used as HTTP parameters
  33.      * for the request to the remote server.
  34.      * @param {Ext.data.DataReader} reader The Reader object which converts the data
  35.      * object into a block of Ext.data.Records.
  36.      * @param {Function} callback The function into which to pass the block of Ext.data.Records.
  37.      * The function must be passed <ul>
  38.      * <li>The Record block object</li>
  39.      * <li>The "arg" argument from the load function</li>
  40.      * <li>A boolean success indicator</li>
  41.      * </ul>
  42.      * @param {Object} scope The scope in which to call the callback
  43.      * @param {Object} arg An optional argument which is passed to the callback as its second parameter.
  44.      */
  45.     doRequest : function(action, rs, params, reader, callback, scope, arg) {
  46.         // No implementation for CRUD in MemoryProxy.  Assumes all actions are 'load'
  47.         params = params || {};
  48.         var result;
  49.         try {
  50.             result = reader.readRecords(this.data);
  51.         }catch(e){
  52.             // @deprecated loadexception
  53.             this.fireEvent("loadexception", this, null, arg, e);
  54.             this.fireEvent('exception', this, 'response', action, arg, null, e);
  55.             callback.call(scope, null, arg, false);
  56.             return;
  57.         }
  58.         callback.call(scope, result, arg, true);
  59.     }
  60. });