可能有人问过这个问题,但我已经尝试了谷歌搜索,但没有得到任何解决方案。
我在Angular2中有以下选择字段,如何在attr.data-thisdata
的数据属性中访问存储的值?
<select #dial">
<option *ngFor="let something of somethings"
[value]="something.value"
[attr.data-thisdata]="something.data"
>{{something.text}}</option>
</select>
我尝试过以下但没有获得任何值:
<select (change)="readData($event.target.dataset)>...<select>
<select (change)="readData($event.target.dataset.thisdata)>...<select>
我的readData很简单:
readData(data:any){
console.log(data)
}
编辑1 :添加了plunker from Günter's answer以便于参考
编辑2 :包括{{3}}
答案 0 :(得分:1)
使用[ngValue]
而不是值,您可以指定一个对象而不是一个字符串。
<select #dial" ngModel (ngModelChange)="$event.data">
<option *ngFor="let something of somethings"
[ngValue]="something"
[attr.data-thisdata]="something.data"
>{{something.text}}</option>
</select>