首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >针对远程对象的自定义验证器

针对远程对象的自定义验证器
EN

Stack Overflow用户
提问于 2010-10-20 23:33:45
回答 3查看 475关注 0票数 3

我需要根据我们的数据库验证一个字段,以验证唯一性。我似乎遇到的问题是,验证器doValidation()在我们收到数据库的回复之前就退出了。

我怎么能让验证器等到我们收到DB的消息后才返回它的有效负载呢?

或者更好的问题可能是(因为我认为第一个问题是不可能的),我如何才能以不同的方式设置它,这样我就不需要等待,或者等待不会导致验证自动返回valid?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-27 23:27:19

大多数情况下,我所做的似乎是有效的。我不喜欢它,但它至少对远程源执行了验证。

然后,我所做的是使用一个'keyUp‘事件处理程序来分离数据库查找部分。同时,我设置了一个字符串变量来充当某种Flag,它将被标记为“正在处理”。当response事件触发时,我将检查其内容,并清除标志,或将其设置为某种其他类型的错误。

然后,我创建了一个新的'EmptyStringValidator‘将检查这个标志的内容,并相应地做它的工作。

它是间接的,但到目前为止,似乎是有效的。

票数 0
EN

Stack Overflow用户

发布于 2010-10-21 01:49:23

如果您使用的是远程对象,则可以在远程声明中指定方法调用,并为结果调用分配一个函数。结果调用只在远程服务器返回某些内容时运行,因此它不会在验证之前运行。

在所说的结果函数调用中进行验证调用(您必须创建它),这样就可以了。你的代码应该是这样的:

代码语言:javascript
运行
复制
<s:RemoteObject id="employeeService"
  destination="ColdFusion"
  source="f4iaw100.remoteData.employeeData"
  endpoint="http://adobetes.com/flex2gateway/"
  result="employeeService_resultHandler(event)"/>
    **<s:method name="dataCheckCall" result="dataCheckResult(event)"/>**
<s:RemoteObject />

在你的脚本中:

代码语言:javascript
运行
复制
function protected dataCheckResult(event:ResultEvent):void {
  **doValidate();**
}

编辑:只要你调用"dataCheckCall“,方法就会开始运行。无论出于何种原因,如果您想要在验证器中调用它,您可以这样做,然后dataCheckResult将在返回其有效负载时运行(假设doValidate在其他地方被调用)。我也在下面留言了。

票数 1
EN

Stack Overflow用户

发布于 2010-10-21 19:31:58

您正在尝试将一个异步流程(从DB获取数据)放入一个同步流程(依次检查所有验证器)。

这行不通..。

您需要使用自己的验证器框架,或者使用不同的方法来确定控件的合法性。

另外,MX验证器是垃圾!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3979592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档