当前位置:  开发笔记 > 前端 > 正文

如果出现验证错误,请停止更新Aurelia值转换器

如何解决《如果出现验证错误,请停止更新Aurelia值转换器》经验,为你挑选了1个好方法。

有没有办法在验证错误的情况下如何阻止值转换器更新?例如,考虑这个简单的转换器:

export class JsonValueConverter {
    toView(value) {
        return JSON.stringify(value);
    }

    fromView(value) {
        try {
            return JSON.parse(value);
        } catch (e) {}
    }
}


输入到textarea的任何无效JSON值都会导致obj = undefined.我想保留最后一个有效值.



1> LStarky..:

不幸的是,ValueConverter不会帮助你,因为它是无状态的,并不是为了做你想做的事情而设计的.

我的建议是检查它是否成功解析为JSON对象.如果没有,只需通过添加return value;catch()括号中返回未转换的值.或者,如果您希望保持纯净,return null;.

您还应该在提交数据之前向表单添加验证以要求有效输入.我建议使用Aurelia验证 - 它在这里适合你.

最后,您应该考虑添加绑定行为以避免Value Converter干扰您的输入.您可以添加& debounce:1000以使其仅在输入后1秒空闲后进行检查,或者& updateTrigger:'blur'等待在焦点丢失之后进行验证.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有