我有一个 Flex 3 应用程序,在视图堆栈中有一个视图,并且该视图只能在请求时创建。我已经为视图上的每个控件声明了验证器,并创建了一个名为 checkAllValid() 的方法,它运行 Validator.validateAll()。当我实际使用控件(使用 change 或 focusOut 事件)时,这非常有用,但是当视图首次显示给用户时,如何让 checkAllValid() 运行,以便它们立即显示一次无效的内容数据填充在控件中?
我尝试将调用放在视图本身的各种事件中(例如,creationComplete、updateComplete、show、activate 等),但是当我启动应用程序时它总是显示以下错误:
'指定属性属性时必须指定源属性。'
我还尝试将视图上的 creationPolicy 设置为“全部”,但这无济于事。
某些验证器仅在表单处于某种状态时才启用,但我通过注释掉我的所有验证器(除了这个最简单的验证器)来消除潜在问题:
<mx:Array id="validators"><mx:StringValidator id="val_Address1" source="{Address1}" property="text" required="true" triggerEvent=""/></mx:Array>
checkAllValid() 方法很简单,如下所示:
private function checkAllValid():void{
var validationErrors: Array = Validator.validateAll(validators);
}
我也尝试过直接调用单个验证器而不是使用 validateAll,结果是一样的。
请帮忙!必须有一种方法可以强制视图在显示时进行验证....
(顺便说一句,它在 Cairngorm MVC 框架中,我将数据绑定到控件)