每当选择项目时,我都必须传递选项的值。但是在我的事件发生之后,传递的值总是未定义的。我的代码如下:
<select (change)="handle(this.value);">
<option value="0">Addition</option>
<option value="1">Subtraction</option>
<option value="2">Multiplication</option>
<option value="3">Division</option>
</select>
我的angular2代码如下:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
n1 = 0;
n2 = 0;
result = 0;
handle(value){
alert("selected option's value is "+value);
}
constructor() { }
ngOnInit() {
}
}
问题是每当选项发生任何变化时,传递给handle函数的参数(值)总是“未定义”。
alert("selected option's value is "+value);
在此行中,参数“value”的值始终未定义。
请帮忙!
提前致谢!
答案 0 :(得分:9)
尝试使用模板参考变量
&
答案 1 :(得分:3)
尝试使用这种方法:
<select [(ngModel)]="selectedValue" (change)="handle();">
<option [ngValue]="0">Addition</option>
<option [ngValue]="1">Subtraction</option>
<option [ngValue]="2">Multiplication</option>
<option [ngValue]="3">Division</option>
</select>
import {Component,OnInit} from '@angular/core';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
selectedValue: number;
n1 = 0;
n2 = 0;
result = 0;
handle() {
alert("selected option's value is " + this.selectedValue);
}
constructor() {}
ngOnInit() {
}
}
答案 2 :(得分:0)
还考虑
<select (change)="handle($event.target.value);">