Im Moment baue ich an einer relativ komplexen Webapplikation deren Frontend auf dem Javascript-Framework ExtJS basiert. Im Zuge dessen bin ich auf ein Verhalten  des Frameworks gestoßen, was ich ungünstig finde:

Wenn ich auf einem Objekt des Types Ext.FormPanel die Methode getValues() aufrufe, bekomme ich nicht wie man vermuten könnte NULL oder zumindest eines der kranken Javascript Derivate davon, sondern ein Objekt welches eine Eigenschaft [Leerstring] mit dem Wert ‘undefined’ hat. Ein Objekt welches man ‘zu Fuss’ so konstruieren könnte:

1
var myObject = {'': 'undefined'}

was zumindest für mich hinreichend wahnsinnig aussieht. Da ich nun selbiges auf etwaigen Inhalt überprüfen muss, ist diese Objectstruktur denkbar ungünstig, da sie sich nicht mit Ext.isEmpty() oder anderen ‘einfachen’ Vergleichen überprüfen lässt.

Ich hab das vorerst ganz pragmatisch gelöst:

1
2
3
4
5
6
7
8
9
var hasValues = false;
var valsObj = item.getForm().getValues();
 
for(var i in valsObj){
  if (i != '') {
    hasValues = true;
    break;
  }
}

Was zwar nur rumdoktern an den Symptomen ist, aber immerhin mein Problem löst. Vielleicht fühlt sich ja auch jemand berufen, sich meines Threads im ExtJS forum anzunehmen, das wäre mir natürlich am allerliebsten :-).