有没有办法让ngModel识别属性绑定语法?

时间:2017-10-07 19:23:38

标签: angular angular2-forms

我偶然发现了一个痛苦的发现:如果你将值绑定到你输入的属性ngModel并不能识别它们,那么最常见的是错误它会引发需要name属性或将ngModelOptions设置为standalone。我在github上遇到了一个解决这个问题的页面,但是这些评论在2016年停止了。到目前为止,他们的解决方案是单独输入,并且将从整体表单中排除,这不是我想要做的。据我所知[attr.name]="..." [attr.id]="..."是绑定属性值的唯一方法。

对于Angular而言,作为一个平台,您不会期望像属性绑定这样的东西能够阻止整个工作流程并需要一些先进的奇迹。看起来如果我们想要做一些事情,除了有一个简单的预定义形式,人们可以放入他们的名字,地址和超能力,我们必须在现实世界中使用其他东西。为什么没有更多的文档概述FormsModules的当前局限性,因为我确信许多习惯于使用Angular ANGULAR的东西的人默认对FormsModule的期望远高于他们实际可以实现的期望。至。关于此问题的进展是否有任何解决方案或当前信息?

1 个答案:

答案 0 :(得分:0)

仅对实施ngModel的组件支持绑定到ControlValueAccessor

要绑定到自定义属性,请使用

@Input()
myProp:string;

@Output()
myPropChange:EventEmitter<String> = new EventEmitter<String>();

命名约定foo(输入)和fooChange(输出)是支持双向绑定所必需的,如

[(myProp)]="bar"

如果未遵循此命名,则仅支持对两者的显式绑定

[myProp]="bar" (myPropX)="bar = $event"

@Input()
myProp:string;

@Output()
myPropX:EventEmitter<String> = new EventEmitter<String>();