当我使用方括号表示法传递类型时,为什么复选框无法在Angular中按预期方式工作?

时间:2019-03-31 14:17:11

标签: angular forms typescript angular-reactive-forms

我基本上花了几个小时来解决使用复选框的动态Angular(反应式)表单中的问题。最后,我发现设置<input [type]="'checkbox'">会产生不同的意外结果,而<input type="checkbox">会按预期工作。

这是错误还是我做错了什么?我一直认为括号表示法允许我在模板中传递TypeScript对象,因此[bla]="'foo'"bla="foo"相同。

这是一个可以玩的最小示例:https://stackblitz.com/edit/angular-xqwwby

如果有人可以向我解释为什么行为不同,那将是很好的。也许其他人在使用Angular形式的复选框时也会发现此功能有用。谢谢!

1 个答案:

答案 0 :(得分:1)

这似乎是Angular的一个限制,已被报告为错误(https://github.com/angular/angular/issues/7329),但Angular团队已解决了GitHub上的问题。

另请参见以下答案:Odd behavior rendering dynamically type of input type checkbox Angular 2+

看起来,处理动态输入类型的最佳方法是在表单元素周围使用*ngIf或通过实现上面链接的另一个问题中给出的解决方法。