将 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 MyComponent
类 for
是一个 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 两种方式绑定一起使用