Ada*_*her 2 typescript angular angular5
如何将以下字符串数组转换为类型数组(或函数?或者这些验证器是什么......)?
let valStrings: string[] = ["Validators.required", "Validators.maxLength(10)"];
Run Code Online (Sandbox Code Playgroud)
并将其转换为:
let validators: ValidatorFn[] = [ Validators.required, Validators.maxLength(10) ];
Run Code Online (Sandbox Code Playgroud)
我有一个返回验证规则的网络服务。这是尝试集中所有验证规则,以保持服务器和客户端验证同步,因此字符串来自HttpClient具有 JSON 结果的调用。当然,我们仍然将实际的实现分开,但至少两者定义的规则应该相同。
该验证器数组将被传递到 a 中,FormControl以利用 Angular 中的反应式表单进行客户端验证。
eval()这是应该使用的地方吗?
谢谢你-亚当
通过字符串中的角度代码在服务器上定义验证是非常糟糕的主意。如果您想要动态验证,请为此创建一个 API。喜欢:
validations: {
name: {
maxLength: 10,
required: true
}
}
Run Code Online (Sandbox Code Playgroud)
Eval 不会帮助您,因为该类没有捆绑在代码中。eval 还会带来安全风险,CSP 应在您的站点上禁用它。
不要将字符串转换为代码。为此你需要一个解析器。当他们更改 Angular 中的验证时,您会做什么?您会更新所有表格吗?
或者想象一下,您将使用 iOS 应用程序连接到您的 API。它必须解析这些字符串 Angular 验证规则。
| 归档时间: |
|
| 查看次数: |
1466 次 |
| 最近记录: |