0

我尝试扩展 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 );
    }
  } );

我得到:“未捕获的 Ext.Error:未指定 URL” 但是正如您所看到的,指定了 url……不知何故,它在 Ext 代码的深处迷失了。

4

1 回答 1

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 );
    }
});
于 2012-04-13T18:04:00.770 回答