Angular2 select用法-设置默认值和事件

设置默认值: 
现在有三个学生小明,小红,小黑,对双向绑定的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 类型的属性,当它触发时,它返回的是输入框的值

点击观看更多关于ngModel的知识

猜你喜欢

转载自my.oschina.net/u/3717377/blog/1588611