在角度2中传递变化事件的参数

时间:2017-06-21 14:55:46

标签: javascript html angular

每当选择项目时,我都必须传递选项的值。但是在我的事件发生之后,传递的值总是未定义的。我的代码如下:

<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”的值始终未定义。

请帮忙!

提前致谢!

3 个答案:

答案 0 :(得分:9)

尝试使用模板参考变量

&

答案 1 :(得分:3)

尝试使用这种方法:

HTML模板

<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>

HomeComponent COMPONENT

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);">