设置默认值:
现在有三个学生小明,小红,小黑,对双向绑定的student设置你想要的select值就可以在下拉框默认选中
code1:
设置”请选择”为默认项,只需要把变量student设置为‘’,即可默认到“请选择”
方案1:
TS:
students:string[]=['xiaoming','xiaohong','xiaohei'];
student:string='';
HTML:
<select [(ngModel)]="student">
<option value="">请选择</option> //此处用的是value,而不是[value]
<option *ngFor="let item of students" [value]='item'>{{item}}</option>
</select>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
方案2:
TS:
students:string[]=['','xiaoming','xiaohong','xiaohei'];
student:string='';
HTML:
<select [(ngModel)]="student">
<option *ngFor="let item of students" [value]='item'>{{item || '请选择'}}</option>
</select>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
code2:
当需要设置默认值到xiaoming时,只需要将变量student的初始值设为“xiaoming”
TS:
students:string[]=['xiaoming','xiaohong','xiaohei'];
student:string='xiaoming';
HTML:
<select [(ngModel)]="student">
<option *ngFor="let item of students" [value]='item'>{{item}}</option>
</select>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
绑定事件
select下拉框主要通过ngModel和ngModelChange实现选择事件
如果你想要在select下拉框选中某一项时触发事件,可以将[(ngModel)]拆成ngModel和ngModelChange来实现
TS:
students:string[]=['xiaoming','xiaohong','xiaohei'];
student:string='';
info:string='';
setInfo(){
this.info=student;
}
HTML:
<select [ngModel]="student" (ngModelChange)="student=$event;setInfo()">
<option value="">请选择</option>
<option *ngFor="let item of students" [value]='item'>{{item}}</option>
</select>
{{info}}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
在属性绑定中,一个值从模型中传到屏幕上的目标属性。 我们通过把名字括在方括号中来标记出目标属性, [] 。 这是一个 从模型到视图 的单向数据绑定。
在事件绑定中,值从屏幕上的目标属性传到模型中。 我们通过把名字括在圆括号中来标记出目标属性, () 。 这是一个 从视图到模型 的反向单向数据绑定。
在Angular2中[(x)] 的绑定目标时,会以x和xChange表示他的输入和输出属性。
代码中student=$event
原理如下ngModelChange是一个 Angular EventEmitter 类型的属性,当它触发时,它返回的是输入框的值