Pregunta

Tengo una aplicación Flex 3 con una vista en un ViewStack, y que sólo visualización debe crearse cuando se le solicite. He declarado validadores para cada uno de los controles de la vista y he creado un método llamado checkAllValid () que se extiende Validator.validateAll (). Esto funciona muy bien cuando en realidad estoy usando los controles (mediante el cambio o eventos focusOut), pero ¿cómo puedo obtener checkAllValid () para ejecutar cuando la vista se muestra por primera vez para el usuario, de manera que se reproducen a lo que no es válido una vez los datos se rellena en los controles?

He intentado poner la llamada en varios eventos en la vista en sí (por ejemplo creationComplete, updateComplete, mostrar, activar, etc.), sino que siempre muestra el siguiente error cuando inicio la aplicación:

'El atributo de origen se debe especificar cuando se especifica el atributo de propiedad.'

También he intentado fijar la creationPolicy en la vista de "todo", pero esto no ayuda.

Algunos de los validadores se activan únicamente cuando el formulario está en un cierto estado, pero que han eliminado el principal problema potencial comentando todos mis validadores excepción de ésta, la más simple:

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

El método checkAllValid () es tan sencillo como sigue:

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

También he intentado llamar al validador única directamente en lugar de utilizar validateAll y el resultado es el mismo.

Por favor, ayuda! Tiene que haber alguna manera de forzar la vista para validar cuando se demuestra ....

(por la forma en que está en el marco de Cairngorm MVC y no tengo los datos ligados a los controles)

¿Fue útil?

Solución

¡Gracias! Añadí validadores similares a otra vista y funcionaron bien. ¿Cuál fue la diferencia? El método que llama checkAllValid () estaba siendo llamado en el evento creationComplete de un contenedor interno - no es el principal componente de vista.

Así que al final no tenía nada que ver con la propia validación - sólo yo no comprender plenamente el orden de creación.

Lo dejo aquí la pregunta sobre si acaso alguien se encuentra con un problema similar con la orden de creación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top