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

Why does a checkbox not work as expected in Angular when I pass the type with bracket notation?

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

这是一个错误还是我做错了什么?我一直认为括号符号可以让我在模板中传递 TypeScript 对象,所以 [bla]="'foo'"bla="foo".

相同

这是一个简单的例子:https://stackblitz.com/edit/angular-xqwwby

如果有人能向我解释为什么行为不同,那就太好了。也许其他人在使用 Angular 表单中的复选框时也会发现这很有用。谢谢!

看起来这是 Angular 的限制,已被报告为错误 (https://github.com/angular/angular/issues/7329),但 GitHub 上的问题已被 Angular团队

另请参阅此处的答案:

看起来处理动态输入类型的最佳方法是使用 *ngIf 围绕表单元素或实施上面链接的其他问题中给出的解决方法。