Sivo 悉见

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

匿名 · 更新于 2018/5/25

设置默认值: 
现在有三个学生小明,小红,小黑,对双向绑定的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>

方案2:

TS:
    students:string[]=['','xiaoming','xiaohong','xiaohei'];
    student:string='';

    HTML:
    <select [(ngModel)]="student">
    <option *ngFor="let item of students" [value]='item'>{{item || '请选择'}}</option>
    </select>

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>

绑定事件 
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}}

在属性绑定中,一个值从模型中传到屏幕上的目标属性。 我们通过把名字括在方括号中来标记出目标属性, [] 。 这是一个 从模型到视图 的单向数据绑定。

在事件绑定中,值从屏幕上的目标属性传到模型中。 我们通过把名字括在圆括号中来标记出目标属性, () 。 这是一个 从视图到模型 的反向单向数据绑定。

在Angular2中[(x)] 的绑定目标时,会以x和xChange表示他的输入和输出属性。

代码中student=$event 原理如下ngModelChange是一个 Angular EventEmitter 类型的属性,当它触发时,它返回的是输入框的值

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