2012-04-13 75 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