2012-04-13 59 views
0

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

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” 但正如你所看到的,在指定的网址...不知它在内线代码的深度丢失。

回答

1

你越来越是由Ext.data.Connection

,所以你需要提供网址setOptions方法时抛出的Ext.data.Connection构造函数被调用,因此所有其他方法可以使用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); 
    } 
}); 
+0

我期望它像Ajax单例一样工作。谢谢! – 2012-04-16 08:39:40