angular - 从来自后端响应的对象设置表单状态
问题描述
我有一个带有 4 个不同表单控件的表单:
this.form = this.formBuiler.group({
controlOne: ['', Validators.required],
controlTwo: ['', Validators.required],
controlThree: ['', Validators.required],
controlFour: ['', Validators.required]
});
我也有来自与表单对象一对一映射的服务的响应。响应中的键是布尔值,指示相应的表单控件是否应标记为无效:
{
controlOneBoolean: true,
controlTwoBoolean: false,
controlThreeBoolean: false,
controlFourBoolean: true
}
我想使用来自后端的这种状态来相应地设置表单状态,并且想知道是否有一种干净的方式来这样做。我正在考虑可能遍历两个对象并将form.get(key).invalid
属性设置为相应的值。
有什么建议么?
解决方案
我们可以使用formControls setError
方法来设置来自后端服务的状态。
您可以使用
this.form.get('controlname').setErrors(controlBooolean ? 'valid': true : 'valid': false )
当然,您将不得不迭代您得到的响应,这里controlBooolean是来自后端响应的单个项目
推荐阅读
- java - 错误:打开失败:ENOENT(没有这样的文件或目录)在文档 pdf 中添加画廊图像
- sql - 从 SQL Server 逗号分隔列中搜索值
- mysql - MySQL:“不在”中不适用于字符串
- java - 如何加载外部属性文件并覆盖springboot application.properties(没有运行时参数)?
- r - 如何获取每个类别的计数
- arrays - 在 perl 中使用 Array 获取用户输入并计算结果
- java - 打印相同数组的两种重载方法?
- javascript - Mozilla Cookies 框架(问题!)
- python-3.x - 在 Python3 中使用 random.choice()
- c# - 如何在 netcore 3 中多次读取 http 请求正文?