Angular 带按钮切换的角度窗体控件
我有以下目标Angular 带按钮切换的角度窗体控件,angular,angular-material,angular-forms,Angular,Angular Material,Angular Forms,我有以下目标 currentApplication = { 'Initial': [12, 2, true, true, false], 'Reminder1': [8, 2, true, true, false], 'Reminder2': [4, 2, true, true, false], 'Reminder3': [2, 2, true, true, false] } 数组的第三个
currentApplication = {
'Initial': [12, 2, true, true, false],
'Reminder1': [8, 2, true, true, false],
'Reminder2': [4, 2, true, true, false],
'Reminder3': [2, 2, true, true, false]
}
数组的第三个、第四个和第五个值表示我想要的一些切换按钮的值,如下所示
在我的组件中,我有:
this.mySettingsForm = new FormGroup({
audienceLearner: new FormControl(applicationSettings.Initial[2]),
audienceLineManager: new FormControl(applicationSettings.Initial[3]),
audienceClientAdmin: new FormControl(applicationSettings.Initial[4])
})
在我的HTML中,我有
<form [formGroup]="mySettingsForm" autocomplete="off">
<mat-button-toggle-group name="audience" aria-label="audience" multiple="true" >
<mat-button-toggle [value]="applicationSettings.Initial[2]">Learner</mat-button-toggle>
<mat-button-toggle value="manager">Line Manager</mat-button-toggle>
<mat-button-toggle value="clientAdmin">Client Admin</mat-button-toggle>
</mat-button-toggle-group>
</form>
学习者
部门经理
客户端管理员
我希望,因为applicationSettings.Initial[2]
中的值是真的,所以按钮会显示为预先选择的,但不会。如果我在按钮上使用formControlName=“audienceLearner”,我会得到一个错误:对于名为“audienceLearner”的表单控件,没有值访问器。
因此,我需要让按钮显示为预选,并且我需要在单击按钮时更新值。通过使用[value]=“applicationSettings.Initial[2]”
将按下按钮时传递的值设置为true
,而不是传递“learner”。(我假设这就是目的,因为其他两个按钮的值与它们的按钮文本相匹配)
对于mat-button-toggle组
,如果您给它一个值
属性,该属性等于mat-toggle button
s'值之一,则具有该值的按钮将显示为按下。例如,这将使默认情况下第一个按钮被按下:
<mat-button-toggle-group name="audience" aria-label="audience" multiple="true" value="learner" >
<mat-button-toggle value="learner">Learner</mat-button-toggle>
<mat-button-toggle value="manager">Line Manager</mat-button-toggle>
<mat-button-toggle value="clientAdmin">Client Admin</mat-button-toggle>
</mat-button-toggle-group>
学习者
部门经理
客户端管理员
使用
multiple=“true”
时,值存储为数组。按下所有三个按钮将导致[“学习者”、“管理者”、“客户管理员”]
。您需要一些函数来根据对象中的布尔值创建一个字符串数组,然后将该数组应用于value属性。太棒了。谢谢你给我指明了正确的方向!