2017-10-07 96 views
1

我只是偶然发现了一个痛苦的发现,即如果您将值绑定到输入的属性ngModel不能识别它们,它最常见的错误是它需要name属性或将ngModelOptions设置为standalone。我在github上发现了一个解决这个问题的页面,但是评论在2016年停止了。他们迄今为止的解决方案是将输入独立出来,并将其从整体表格中排除,这不是我想要做的。据我所知[attr.name]="..." [attr.id]="..."是绑定属性值的唯一方法。有没有办法让ngModel识别属性绑定语法?

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

+1

你可能要考虑重新措辞你的问题;就目前而言,您正在描述一个理论问题,如果没有看到您正在尝试使用的代码,就很难理解这个问题,并且问题的后半部分会以伪装的形式出现。如果你要展示一些示例代码,并且减少评论,你将有更大的机会得到一个好的答案。 – Claies

+0

'[attr.name]'是绑定到attr属性的方式,'[name]'是绑定到属性的语法。 –

回答

0

只有实现ControlValueAccessor的组件支持绑定到ngModel

绑定到自定义属性使用

@Input() 
myProp:string; 

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

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

[(myProp)]="bar" 

结合如果这种命名不其次,只支持明确约束两者

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

for

@Input() 
myProp:string; 

@Output() 
myPropX:EventEmitter<String> = new EventEmitter<String>(); 
相关问题