gpt4 book ai didi

aurelia - 发生验证错误时停止 Aurelia 值转换器更新

转载 作者:行者123 更新时间:2023-12-02 10:50:59 24 4
gpt4 key购买 nike

有什么方法可以在验证错误的情况下阻止值转换器更新吗?例如,考虑这个简单的转换器:

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

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

<textarea value.bind="obj | json"></textarea>

输入到文本区域的任何无效 JSON 值都会导致 obj = undefined。我想保留最后一个有效值。

最佳答案

不幸的是,ValueConverter 不会帮助您,因为它是无状态的,并且不是为您想做的事情而设计的。

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

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

最后,您应该考虑添加绑定(bind)行为,以避免您的值转换器干扰您的输入。您可以添加 & debounce:1000 使其仅在输入后空闲 1 秒后进行检查,或者添加 & updateTrigger:'blur' 等待焦点后验证丢失了。

关于aurelia - 发生验证错误时停止 Aurelia 值转换器更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41777348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com