场景:
- 我正在使用角材料和角6制作一个表格
- 我想根据从单选按钮中选择的类型显示相关的文本框
我用于单选按钮的代码
<div class="form-group m-form__group row">
<div class="m-radio-list">
<mat-radio-group>
<p>
<mat-radio-button value="newBusiness">New</mat-radio-button>
<mat-radio-button value="renewal">Renewal</mat-radio-button>
<mat-radio-button value="rollover">Old</mat-radio-button>
</p>
</mat-radio-group>
</div>
</div>
Todo:
- 因此,基于这3种类型,一旦用户选择了一种特定的类型,例如,我想向他显示姓名和号码的文本框,
如果是另一个值,则是其他文本框
默认选中复选框的演示
应用程序代码:https://stackblitz.com/edit/angular-27et6e?file=src/app/app.component.ts
(在这个代码中,我默认选择了第三个复选框,如果你想的话,你可以选择第一个(
方法:
- 制作2个div容器,一个用于
radio-buttons
,另一个用于根据所选radio-button
显示相应的输入容器 - 您可以像
(change)="changeComboo($event)"
那样使用change
事件,
我刚刚使用ngModel
将值绑定到像[(ngModel)]="favoriteSeason"
这样的变量
更新1(默认选中第一个复选框(:
- 由于
mat-radio-group
是使用[(ngModel)]="favoriteSeason"
绑定的,
因此在函数ngOnint()
-中,我们可以通过this.favoriteSeason = this.seasons[0];
(如果我们想选择第一个复选框(为该favoriteSeason
变量分配一个默认值
像这样尝试
<div class="radio">
<label>
<input type="radio" name="radio" value="New" (click)="setradio('New')" [checked]='true' ngModel>
New
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="radio" value="Renewal" (click)="setradio('Renewal')" ngModel>
Renewal
</label>
</div>
<div *ngIf="isSelected('New')" >
<input type="text"/> New radio button selected
</div>
<div *ngIf="isSelected('Renewal')">
<input type="text"/> Renewal radio button selected
</div>
在您的组件中.ts
private selectedLink: string="New";
setradio(e: string): void {
this.selectedLink = e;
}
isSelected(name: string): boolean {
if (!this.selectedLink) { // if no radio button is selected, always return false so every nothing is shown
return false;
}
return (this.selectedLink === name); // if current radio button is selected, return true, else return false
}