Frage

Ich habe eine Flex 3 App mit einer Ansicht in einem ViewStack-, und diese Ansicht muss nur erstellt werden, wenn angefordert. Ich habe Validierer für jedes der Steuerelemente für die Sicht erklärt, und ich habe eine Methode namens checkAllValid () erzeugt, die Validator.validateAll läuft (). Dies funktioniert gut, wenn ich wirklich ist mit den Kontrollen (die Änderung oder focusOut Ereignisse verwendet wird), aber wie ich checkAllValid bekommen kann () laufen, wenn der Blick zuerst auf den Benutzer angezeigt wird, so dass sie sofort angezeigt, was ist ungültig, wenn die Daten werden in den Kontrollen bevölkert?

Ich habe versucht, auf der Ansicht, um den Anruf an verschiedenen Veranstaltungen setzen sich (zum Beispiel creationComplete-, update, show, aktiviert, etc.), aber es zeigt immer die folgende Fehlermeldung, wenn ich die Anwendung zu starten:

'Das Quellattribut muss angegeben werden, wenn die Eigenschaft Attribut angegeben ist.

Ich habe auch versucht, die creation auf die Ansicht auf „alle“, aber das hilft nicht.

Einige der Validatoren sind nur aktiviert, wenn das Formular in einem bestimmten Zustand ist, aber ich habe beseitigt, dass wie durch Kommentare aus allen meinen Validierer mit Ausnahme dieser einfachsten ein das potenzielle Problem zu sein:

<mx:Array id="validators"><mx:StringValidator id="val_Address1" source="{Address1}" property="text" required="true" triggerEvent=""/></mx:Array>

Die checkAllValid () Methode so einfach ist wie folgt:

private function checkAllValid():void{              
        var validationErrors: Array = Validator.validateAll(validators);        
}

Ich habe auch versucht, die einzige Validator Aufruf direkt anstatt validateAll und das Ergebnis ist das gleiche.

Bitte Hilfe! Es muss einen Weg geben ich die Ansicht zu bestätigen zwingen kann, wenn nachgewiesen wird, ....

(übrigens ist es in dem Cairngorm MVC-Framework, und ich habe Daten an die Steuerelemente gebunden)

War es hilfreich?

Lösung

Verstanden! Ich habe ähnliche Validatoren zu einer anderen Ansicht, und sie hat gut funktioniert. Was war der Unterschied? Die Methode, die checkAllValid () aufgerufen wurde auf dem creationComplete- Fall eine Innenbehälter genannt - nicht die Hauptansicht Komponente.

Also am Ende war es nichts mit der Validierung selbst zu tun - ich einfach nicht vollständig die Schöpfungsordnung zu verstehen.

Ich werde die Frage verläßt hier nur für den Fall jemand Begegnungen ein ähnliches Problem mit der Schöpfungsordnung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top