2012-04-10 12 views
0

の「フォーマット」メソッドを呼び出すことはできません私はExtJSのバージョン3.4を使用していると私は、この行で1つのエラーを取得しています:キャッチされない例外TypeError:未定義

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

Hmm ... "Exp"または "Exp.String"は定義されていないので、 "format"を呼び出すことはできません。定義されていないものを見つけることができますか?あなたのページにextjを含めましたか? – Tobi

+0

こんにちは@Tobi私のjsファイルはMetadata.jsであり、私は明示的にExtを含んでいました。 上記のコードをExt.extend method()内で使用しています。 Extを明示的に含める方法を教えてください。 – user27

+0

次のようなものがあります: Tobi

答えて

0

Ext.Stringの代わりに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

こんにちは@theat上記のコードは私がテキストフィールドに何かを入力し、最初にその時だけ削除して作業しています。コードで何が間違っていますか?初めてそれをフィルタリングしない理由 – user27

関連する問題