在敲除验证中迫使一个场在敲除验证中复制异步
我正在扩展一个使用QuintOut.js的现有应用程序 - 但很难设置以支持无效 - 因此我无法使用敲除异步验证的验证 - (我尝试了 - 发生了比赛条件)。所以我自己滚动。这种作品。
ko.validation.rules.my_validator = {
validator( value ) {
var known_result = already_validated[ value ];
if (known_result == null)
{
call_server_function_on( value ).done( function( result )
{
already_validated[value] = result;
// somehow force a revalidate of THIS observable here
})
this.message = "validating...";
return false;
}
else
{
this.message = known_result.message;
return self.is_valid;
}
}
}
我找不到任何强迫重新验证的方式。
如果我将观察到的参数传递给了可观察的参数,那么我就可以致电NotifySubscriber,这一切都可以工作 - 但这使我的验证器的UI非常可怕 - 例如,
someField.extend( {my_validator: {the_observable: someField }})
...
the_observerable.notifyObservers( the_observable());
我有什么办法可以从验证器内部进行操作?
I'm extending an existing app that uses knockout.js - but is very much not setup to support invalidating - so I can't use the knockout async validation - (I tried - race conditions happened). So I'm rolling my own. This sort of works.
ko.validation.rules.my_validator = {
validator( value ) {
var known_result = already_validated[ value ];
if (known_result == null)
{
call_server_function_on( value ).done( function( result )
{
already_validated[value] = result;
// somehow force a revalidate of THIS observable here
})
this.message = "validating...";
return false;
}
else
{
this.message = known_result.message;
return self.is_valid;
}
}
}
I can't find any way of forcing the revalidate.
If I pass in the observable as a parameter, I can then call notifySubscribers, and it all works - but that makes for a really horrible ui of my validator - eg
someField.extend( {my_validator: {the_observable: someField }})
...
the_observerable.notifyObservers( the_observable());
Is there any way I can do it from inside the validator?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论