angular2 - ngModel 不适用于标签(ng2-bootstrap,paper-kit)

angular2 - ngModel not working on labels (ng2-bootstrap, paper-kit)

对我来说,[(ngModel)]="foo" 不适用于用于重新设置默认 HTML5 表单控件样式的标签,更准确地说是单选按钮。目标是像使用默认输入收音机一样使用它们来更改值。我目前使用 ng2-bootstrap,但也尝试过 paper-kit (http://www.creative-tim.com/live/paper-kit).

使用 ng2-bootstrap 的文档用法时 (https://valor-software.com/ng2-bootstrap/#/buttons)

<label class="btn btn-primary" name="test" [(ngModel)]="foo" btnRadio="foo">foo</label>

我收到这个错误:

core.umd.js:3468 Error: Uncaught (in promise): Error: No value accessor for form control with name: 'test'
at resolvePromise (zone.js:429)
at zone.js:465
at ZoneDelegate.invokeTask (zone.js:236)
at Object.onInvokeTask (core.umd.js:6233)
at ZoneDelegate.invokeTask (zone.js:235)
at Zone.runTask (zone.js:136)
at drainMicroTaskQueue (zone.js:368)
at XMLHttpRequest.ZoneTask.invoke (zone.js:308)

这可能会使用标签中的 ngDefaultControl 属性修复,但 [(ngModel)] 仍会被忽略且不会传播。同样的问题发生在paper-kit的使用上。

它适用于普通的单选按钮,没有任何问题。

您需要将 ButtonsModule 添加到要使用它们的模块的 imports

@NgModule({
  imports: [ButtonsModule],
  declarations: [...],
  ...
})
export class MyModule {}