【发布时间】:2019-06-15 12:27:15
【问题描述】:
我需要添加自定义数据属性来选择选项。我想要它,因为在更改时我想触发基于所选属性(而不是值)的操作
这是我正在使用的代码
<select (domChange)="onListUpdate($event)" formControlName="region" id="region" class="selectric form-control">
<option code="" value="-1">{{ 'select_country' | translate }}</option>
<option data-isocode="{{region.iso_code}}" value="{{region.id}}" *ngFor="let region of regions">{{region.name['en']}}</option>
</select>
例如,当我为数据属性赋予静态值时,它可以正常工作,以下工作没有任何问题(注意 data-isocode 具有静态值)
<option data-isocode="abc" value="{{region.id}}" *ngFor="let region of regions">{{region.name['en']}}</option>
但是,当我尝试在 data-isocode 中使用该变量时
<option data-isocode="{{region.iso_code}}" value="{{region.id}}" *ngFor="let region of regions">{{region.name['en']}}</option>
它会引发以下错误
Can't bind to 'isocode' since it isn't a known property of 'option'
如何使用 Angular 传递数据属性(如在 jQuery 中)并使用 FormBuilder 获取值?
【问题讨论】:
-
你能试试像
[attr.data-isocode]="region.iso_code"这样的绑定吗? -
这样做:
[attr.data-isocode]="region.iso_code". -
工作,谢谢,如何使用 FormBuilder 访问 .ts 文件中的值?
-
@IbrahimAzharArmar 您可以通过
@ViewChild与元素绑定来获取它。但我不明白。如果您要绑定像region.iso_code这样的变量/属性,它一开始不是来自.ts吗?
标签: angular angular7 angular2-formbuilder