2012-04-10 4 views
0

nennt ich extjs Version 3.4 verwenden, und ich bin immer einen Fehler in dieser Zeile:Uncaught Typeerror: Die Methode kann nicht ‚format‘ undefinierter

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 

Ich Zuhörer wie diese hinzugefügt lass es mich wissen, wenn es irgendein falsch darin.

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 ... die Nachricht sagt, dass "Exp" oder "Exp.String" nicht definiert ist, daher konnte "format" nicht aufgerufen werden. Kannst du herausfinden, was nicht definiert ist? Haben Sie extjs in Ihre Seite aufgenommen? – Tobi

+0

Hallo @Tobi meine js-Datei ist Metadata.js und explizit Ext enthalten. Ich verwende den obigen Code in Ext.extend method(); Kannst du bitte sagen, wie man explizit Ext einbezieht? – user27

+0

So etwas wie: Tobi

Antwort

0

Nur für den Fall Sie sich fragen, warum es mit String arbeitet statt Ext.String es ist, weil Ext das Verfahren an die JavaScript-String-Objekt hinzufügt.

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

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

alle anderen Funktion für String Damit Ext definiert auch (Toggle, trimmen, etc.) auf String-Objekt sein und Ext.String nicht.

Hoffen, dass das hilft, warum es nicht funktionierte und für die Zukunft.

+0

Hi @therat der obige Code funktioniert, wenn ich etwas in das Textfeld eingebe und zum ersten Mal lösche, dann funktioniert es nur. Was ist falsch im Code? Warum filtert es keine Werte für das erste Mal – user27

Verwandte Themen