2012-04-10 82 views
0

法「格式」我使用ExtJS的3.4版,我在這行得到一個錯誤:遺漏的類型錯誤:無法調用未定義

var query = new RegExp(Ext.String.format('field1', e.query.replace(/\?/g, '[A-Za-z0-9]'))); 
like--Uncaught TypeError: Cannot call method 'format' of undefined 

我加了聽衆喜歡這個請讓我知道,如果有任何在這個錯誤。

this.findById('field1').addListener({ 
    beforequery: function (e) { 
     if (e.query && e.query.indexOf('?') != -1) { 
      e.cancel = true; 
      var query = new RegExp(Ext.String.format('field1', e.query.replace(/\?/g, '[A-Za-z0-9]'))); 
      this.expand(); 
      this.store.clearFilter(true); 
      this.store.filter(this.displayField, query); 
     } 
    } 
}); 
+0

嗯......消息說「Exp」或「Exp.String」是未定義的,所以無法調用「format」。你能找出什麼是未定義的?你有沒有在你的頁面中包含extjs? – Tobi 2012-04-10 05:24:20

+0

嗨@Tobi我的js文件是Metadata.js,我的作品明確包含了Ext。 我在Ext.extend方法()中使用上面的代碼;你能否告訴我們如何明確地包含Ext。 – user27 2012-04-10 05:41:19

+0

類似於: Tobi 2012-04-10 05:56:55

回答

0

以防萬一您想知道爲什麼它使用String而不是Ext.String,這是因爲Ext將方法添加到JavaScript String對象。

http://docs.sencha.com/ext-js/3-4/#!/api/String

These functions are available as static methods on the JavaScript String object.

因此,所有的其它功能的字符串分機定義(肘節,修整等),也將在字符串對象,並沒有Ext.String的。

希望有助於爲什麼它不工作和未來。

+0

嗨@therat上面的代碼工作時,我在文本框中輸入的東西,第一次刪除,然後只有它的工作。代碼中有什麼錯誤。爲什麼它不是第一次過濾值 – user27 2012-04-11 05:42:45

相關問題