将 ngModel 模板引用变量作为 AbstractControl 传递给输入变量

Posted

技术标签:

【中文标题】将 ngModel 模板引用变量作为 AbstractControl 传递给输入变量【英文标题】:Passing ngModel Template Reference Variable to Input Variable as AbstractControl 【发布时间】:2018-04-05 14:22:04 【问题描述】:

我正在尝试将ngModel 引用的AbstractControl 传递给另一个组件上的输入变量。

据此:https://angular.io/guide/form-validation#template-driven-validation(代码 sn-p 下的第二个项目符号),#name="ngModel" 将 NgModel 导出到名为 name 的局部变量中。 NgModel 反映了其底层 FormControl 实例的许多属性,因此您可以在模板中使用它来检查控制状态,例如有效和脏

如果我没看错,我应该能够将name 模板引用变量中的FormControl(继承自AbstractControl)传递给另一个组件,如下所示:<my-component for="name"></my-component> where in MyComponentfor 是一个 Input 变量,采用 AbstractControl。然后我应该能够以AbstractControl 的身份使用for

我不能。当我调试时,for 是一个值为“name”的字符串。

任何想法我错过了什么?我的目标是能够集中验证处理并在MyComponent 中显示,因此我需要访问AbstractControl(或FormControl)来获取我尝试验证的任何字段。

【问题讨论】:

【参考方案1】:

你需要方括号来解析name,所以

<my-component [for]="name"></my-component>

否则,将其视为字符串/

【讨论】:

哦,快!我太专注于“硬”的东西(或者至少对我来说是新的东西),以至于我忽略了简单的东西!这正是的问题。谢谢@user184994。

以上是关于将 ngModel 模板引用变量作为 AbstractControl 传递给输入变量的主要内容,如果未能解决你的问题,请参考以下文章

Angular 4 - 将对象数组映射到模板中的 ngModel 驱动

模板驱动表单(实验部分)

离子输入值 [(ngModel)] 没有随着相对组件成员变量的变化而更新

Angular 2:如何将 JavaScript 日期对象与 NgModel 两种方式绑定一起使用

Angular 2:如何将 JavaScript 日期对象与 NgModel 两种方式绑定一起使用

Angular 4中的模板解析错误“没有将exportAs设置为ngModel的指令”