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

时间:2017-05-10 19:01:15

标签: angular angular-material

example in the official demo app之后我写了这段代码:

<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>

但是我收到了错误

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'

我错过了什么吗?

对评论的回应:

删除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

删除multiple可以消除错误,但会使用户只允许选择一个。根据Material 2文档,此语法支持选择多个。是否有另一种未记录的方式来选择多个?我需要能够一次选择多个按钮 - 我已经看到了很多这种行为的演示。

1 个答案:

答案 0 :(得分:3)

我不知道为什么它会被打破,但这是一个修复。

<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>

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