Angular Material动态按钮切换组表单控件访问器

Nat*_*ner 1 angular-material angular

按照官方演示应用程序中示例,我编写了以下代码:

<md-button-toggle-group name="typeToggle" [(ngModel)]="chosenType" multiple>
  <md-button-toggle *ngFor="let type of subTypes" [value]="type">
    {{type}}
  </md-button-toggle>
</md-button-toggle-group>
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误

core.es5.js:1084 
ERROR Error: Uncaught (in promise): Error: No value accessor for form control with name: 'typeToggle'
Error: No value accessor for form control with name: 'typeToggle'
Run Code Online (Sandbox Code Playgroud)

我想念什么吗?


对评论的回应:

删除name属性将导致:

core.es5.js:1084 
ERROR Error: Uncaught (in promise): Error: No value accessor for form control with unspecified name attribute
Error: No value accessor for form control with unspecified name attribute
Run Code Online (Sandbox Code Playgroud)

删除可以multiple消除该错误,但是可以消除该错误,以便仅允许用户选择一个。根据材料2文档,此语法支持选择多个。还有另一种未公开的方法来选择多个吗?我需要一次选择一个以上的按钮-我已经看到了许多有关此行为的有效演示。

Nat*_*ner 5

我不知道为什么它坏了,但是有一个解决方法。

<md-button-toggle-group name="typeToggle" [(ngModel)]="chosenType" multiple ngDefaultControl>
  <md-button-toggle *ngFor="let type of subTypes" [value]="type">
    {{type}}
  </md-button-toggle>
</md-button-toggle-group>
Run Code Online (Sandbox Code Playgroud)

为了提供一些见解,很明显,文档现在表明ngModel不支持多个,并且可以使用来访问值(click)。但是,通过添加ngDefaultControl,可以访问该值。这有点hack,但到目前为止它仍然有效。

  • 关于使它以反应形式工作有什么建议吗? (7认同)