angular - 显示、编辑和验证与使用响应式表单写入/读取模型不同的数据
问题描述
我的设置
我有一个value
来自 db 作为number
. 此值应始终是一个数字,除非是为了在input
-element 中显示它并验证输入。只有在这些情况下,数字才必须是一个HEX
值。
这是应该发生的事情:
value: 200
来自服务。?value=200
在路由器中用作参数。value: 'c8'
显示在input[type=text]
视图中。- 用户将此值更改为
fa
- 这个验证器应该(如果可能的话)验证
fa
它是否是一个有效的 HEX 表达式。 - 如果是,那么应该在模型中
value = hex2Number('fa')
导致,而仍然应该在-element 中进行编辑。value: 250
fa
input
value: 250
之后应该再次在路由器中使用,并且应该回到服务器。
完全相同的用例适用于例如分钟:正在编辑的秒数和保存在数据库中的秒数。
我不需要- 方法的帮助hex2Number()
;-)
我的问题
- 这可能使用反应形式吗?
- ...还是我必须改用模板驱动表单?
- 是否有在 GUI 和其背后的模型中拥有不同数据的最佳实践?
提前致谢!
解决方案
1)是的,这是可能的。为此创建一个自定义ControlValueAccessor
。
2)它与反应式和模板驱动的表单兼容。
3)ControlValueAccessor
是最佳实践。
推荐阅读
- objection.js - 为 objection.js 进行的所有查询打印完整的 SQL
- c - 将十六进制的char *转换为C中的实际十六进制的最简单方法?
- json - Xcode 与 IQAir Api 解析混淆
- c++ - gRPC 服务器无法构建并引发错误
- java - 如何正确地将巨大的 json 文件映射到 Java (pojo)?
- azure - Azure 中的机器学习:使用 SDK 在 Python 中构建管道后,如何将管道发布到工作区?
- oracle - 在 Oracle SQL 中,除了外连接之外,where 子句中的 (+) 运算符的目的是什么?
- go - 我们可以在 Dockerfile 中将几个 RUN 指令与 --no-cache 连接起来吗
- sql - 如何在日期自动更新值
- regex - 正则表达式在字符串中搜索模式