angular - 如何使用角度从组件到模板选择选项按钮?
问题描述
我想以编程方式选择性别单选按钮。我正在使用 Angular 7。这是我的代码:(html)
<input #male type="radio" name="gender" (click)="setGender('Male')"> Male
<input #female type="radio" name="gender" (click)="setGender('Female')"> Female
我尝试使用 @ViewChild 但没有得到任何选定的属性来操作。
(ts)
@ViewChild('male') male_btn: ElementRef;
@ViewChild('female') female_btn: ElementRef;
setGender(g: any) {
this.gender = g;
}
editPerson(person) {
console.log(person.name);
this.name_field.nativeElement.value = person.name;
this.salary_field.nativeElement.value = person.salary;
if (person.gender === 'Male') {
//this.male_btn.nativeElement;
}
if (person.gender === 'Female') {
//this.female_btn.nativeElement;
}
}
当在视图中按下编辑按钮时,这里的 editPerson 函数将被执行。
我想要的是当 person.gender 值为男性时,将选择视图中的男性按钮并相应地选择女性。
解决方案
像这样使用 [(ngModel)]="myRadio"
<input type="radio" value="male" [(ngModel)]="myRadio" name="gender" (click)="setGender('Male')" > Male
<input type="radio" value="female" [(ngModel)]="myRadio" name="gender" (click)="setGender('Female')"> Female
并在您的 ts 文件中定义 myRadio,例如 myRadio:string;
因此你可以使用这个值
editPerson() {
if (myRadio === 'Male') {
//this.male_btn.nativeElement;
}
if (myRadio === 'Female') {
//this.female_btn.nativeElement;
}
}
或者在单选更改事件上调用 editPerson 以获取单选按钮的事件和值
并且,不要使用 javascript 来控制 Angular 中的 DOM 元素,这违反了 Angular 哲学
推荐阅读
- pandas - 如何根据列上的条件在数据框中执行嵌套的 groupby 操作?
- excel - 对象“_Worksheet”的方法“范围”失败 |Excel|VBA|
- go - 将 Goroutine 分离为独立进程
- html - 仅在chrome下两个div在同一位置时的垂直空间错误
- regex - 除了 ?和 *,条件格式中允许使用哪些其他通配符?
- python - 如何使用 Python 在 XML 中修改具有相同标签的不同值?
- php - 从 PHP 数组中获取逗号分隔值
- excel - 从关闭的工作簿中动态复制单元格范围?
- mysql - 避免表扫描并在查询中使用索引
- swift - 符合 'CBCentralManagerDelegate' 协议