angular中radio单选的问题解决demo

html中单选框用法如下,checked用来选中默认的单选项:

<input type="radio" name="sex" value="male" checked>Male
<input type="radio" name="sex" value="female">Female
  • 1
  • 2

如果使用[(ngModel)]绑定后,checked就不再生效,此时默认选中项与绑定的sex值相关,设置ngmodel绑定的sex值即可

sex:string='male'
 <input type="radio" name="sex" [(ngModel)]="sex" value="male">Male
 <input type="radio" name="sex" [(ngModel)]="sex" value="female">Female
  • 1
  • 2
  • 3

选中某单选框后触发事件,有三种方法

1.添加(click)事件,#male和#female是ng2中的模板变量

<input type="radio" name="sex" (click)="print(male.value)" value="male" #male checked>male
<input type="radio" name="sex" (click)="print(female.value)" value="female" #female>female
  • 1
  • 2

2 万能的 ngModel和ngModelChange方法,当使用ngModel时,如果用绑定的sex传值必须使用ngModelChange,因为选中单选项后,(click)执行要早于ngModelChange,所以此时(click)中传入的值还是未绑定的旧值;如果使用模板变量则不存在这个问题。

<input type="radio" name="sex" [ngModel]="sex" (ngModelChange)="sex=$event;print(sex)" value="male">Male
<input type="radio" name="sex" [ngModel]="sex" (ngModelChange)="sex=$event;print(sex)" value="female">Female
  • 1
  • 2

3.原生的change方法也可以

作者:xiagh原文地址:https://blog.csdn.net/xiagh/article/details/84136589

%s 个评论

要回复文章请先登录注册