ExtJS 4扩展Ext.data.Connection

时间:2012-04-13 10:34:13

标签: extjs

我尝试扩展Connection类,就像Ext.Ajax做的那样,我可以设置一个中心点来设置一些默认值。

  Ext.define( 'App.helper.HttpApi', {
    extend   : 'Ext.data.Connection',
    singleton: true,

    request: function( oConf ) {

      oConf.url = '/index.php';
      oConf.params.vers = '1.1.json';
      oConf.params...

      this.callParent( oConf );
    }
  } );

我得到:“Uncaught Ext.Error:没有指定URL” 但正如你所看到的那样,网址是指定的...不知何故,它会在Ext代码的深度中丢失。

1 个答案:

答案 0 :(得分:1)

setOptions

Ext.data.Connection方法会引发您获得的错误

因此您需要在调用Ext.data.Connection的构造函数时提供url,以便所有其他方法都可以使用该URL

Ext.define( 'App.helper.HttpApi', {
    extend   : 'Ext.data.Connection',
    singleton: true,

    constructor : function (config)
    {
        config = config || {};
        Ext.applyIf(config, {
            url : '/index.php'
        });

        this.callParent(config);
    },

    request: function( oConf ) {
      oConf.params.vers = '1.1.json';
      oConf.params...

      this.callParent( oConf );
    }
});

或者如果您要对所有请求使用单个URL,则可以直接将其指定为此单例的默认值

Ext.define( 'App.helper.HttpApi', {
    extend   : 'Ext.data.Connection',
    singleton: true,
    url : '/index.php',

    request: function( oConf ) {
      oConf.params.vers = '1.1.json';
      oConf.params...

      this.callParent( oConf );
    }
});