Angular2 - 如何访问存储在数据属性中的值

时间:2016-11-10 08:59:45

标签: angular custom-data-attribute

可能有人问过这个问题,但我已经尝试了谷歌搜索,但没有得到任何解决方案。

我在Angular2中有以下选择字段,如何在attr.data-thisdata的数据属性中访问存储的值?

<select #dial">
   <option *ngFor="let something of somethings"
     [value]="something.value" 
     [attr.data-thisdata]="something.data"
   >{{something.text}}</option>
</select>

我尝试过以下但没有获得任何值:

  1. <select (change)="readData($event.target.dataset)>...<select>
  2. <select (change)="readData($event.target.dataset.thisdata)>...<select>
  3. 我的readData很简单:

    readData(data:any){
        console.log(data)
    }
    

    编辑1 :添加了plunker from Günter's answer以便于参考

    编辑2 :包括{{3}}

1 个答案:

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

Plunker example