What I want to achieve:
每次用户在下面的代码中选择上选时的某个选项时,我想执行组件的方法onSelectSampleType,并将所选对象作为参数,将组件的某些公共属性设置为传递的参数 .
<select (change)="onSelectSampleType(SampleType)">
<option *ngFor="let SampleType of sampleTypeList">{{ SampleType }}</option>
</select>
<select *ngIf="selectedSample"">
<option *ngFor ="let subType of selectedSampleType.subType">{{ subType }}</option>
</select>
Problem: onSelectSampleType()方法中的SampleType参数,该方法应该捕获ngFor指令的SampleType,捕获任何内容并传递未定义的值 . 我认为ngfor指令中的SampleType变量的范围仅限于标记 .
有没有办法实现我想要实现的目标?
3 回答
试试这个
你应该得到我想的选定选项的索引
您可以传递以下值:
打字稿:
您的代码的问题是您正在尝试访问
ngFor
指令范围之外的SampleType
变量 . 由于您're outside of the scope you can' t访问变量,因此(change)
回调不会收到您想要的数据 .如果回调的唯一目的是在组件上设置
selectedSampleType
属性,则可以使用ngModel
直接将控件绑定到selectSampleType
:如果需要更复杂的回调,可以使用
$event.target.value
获取触发(change)
事件的选项的值:您可以在此处找到有关Angular 2事件绑定的更多信息:https://angular.io/docs/ts/latest/guide/template-syntax.html#!#event-binding