在 angular2 中访问 Select 元素值给出错误

Accessing Select element value in angular2 gives Error

我正在使用 angular 2 rc4 我的观点如下:

<select class="form-control" (change)="selectTestName=this.value;getChartData()">
    <option *ngFor="let st of selectTestNameList" value="{{st.selectTestName}}">{{st.selectTestName}}</option>
</select>

更改后会抛出以下错误:

TypeError: Cannot read property 'value' of undefined
    at DebugAppView._View_GeneralTrnd0._handle_change_20_0 (GeneralTrnd.template.js:367)
    at eval (eval at <anonymous> (vendor.js:25), <anonymous>:316:24)
    at eval (eval at <anonymous> (vendor.js:45), <anonymous>:278:36)
    at eval (eval at <anonymous> (vendor.js:48), <anonymous>:20:93)
    at ZoneDelegate.invoke (zone.js:323)
    at Object.onInvoke (eval at <anonymous> (vendor.js:17), <anonymous>:45:41)
    at ZoneDelegate.invoke (zone.js:322)
    at Zone.runGuarded (zone.js:230)
    at NgZoneImpl.runInnerGuarded (eval at <anonymous> (vendor.js:17), <anonymous>:78:78)
    at NgZone.runGuarded (eval at <anonymous> (vendor.js:13), <anonymous>:228:73)

而不是 this.value 使用 $event.target.value.

<select class="form-control" (change)="selectTestName=$event.target.value;getChartData()">
    <option *ngFor="let st of selectTestNameList" value="{{st.selectTestName}}">{{st.selectTestName}}</option>
</select>

这样试试:

<select class="form-control" #selectbox (change)="selectTestName=selectbox.value;getChartData()">
  <option *ngFor="let st of selectTestNameList" value="{{st.selectTestName}}">{{st.selectTestName}}</option>
</select>

您必须为选择框指定一个名称。您可以使用该名称访问该值。