我基本上花了几个小时来解决使用复选框的动态Angular(反应式)表单中的问题。最后,我发现设置<input [type]="'checkbox'">
会产生不同的意外结果,而<input type="checkbox">
会按预期工作。
这是错误还是我做错了什么?我一直认为括号表示法允许我在模板中传递TypeScript对象,因此[bla]="'foo'"
与bla="foo"
相同。
这是一个可以玩的最小示例:https://stackblitz.com/edit/angular-xqwwby
如果有人可以向我解释为什么行为不同,那将是很好的。也许其他人在使用Angular形式的复选框时也会发现此功能有用。谢谢!
答案 0 :(得分:1)
这似乎是Angular的一个限制,已被报告为错误(https://github.com/angular/angular/issues/7329),但Angular团队已解决了GitHub上的问题。
另请参见以下答案:Odd behavior rendering dynamically type of input type checkbox Angular 2+
看起来,处理动态输入类型的最佳方法是在表单元素周围使用*ngIf
或通过实现上面链接的另一个问题中给出的解决方法。