Javascript 如何在下拉列表angular2中获取标签字符串作为formControl值?

Javascript 如何在下拉列表angular2中获取标签字符串作为formControl值?,javascript,json,angular,angular2-forms,Javascript,Json,Angular,Angular2 Forms,以下是我试图实现的目标,我希望获得标签字符串作为我的formControl值,但我也需要选定的更改事件,即我需要更改时的值,以下是我的代码: HTML: <form [formGroup]="form"> <select class="form-control" [(ngModel)]="selectedListKota" #t (change)="ZonaChanged(t.value)" formControlName="nama_zona">

以下是我试图实现的目标,我希望获得标签字符串作为我的formControl值,但我也需要选定的更改事件,即我需要更改时的值,以下是我的代码:

HTML:

<form [formGroup]="form">
    <select class="form-control" [(ngModel)]="selectedListKota" #t (change)="ZonaChanged(t.value)" formControlName="nama_zona">
                                <option *ngFor="let lz of listKota" [value]="lz.value">  
                                {{lz.label}}
                                </option>
    </select>
</form>
当我想选择AGAM时,我的表单JSON将如下所示:

{
  "nama_bass": "",
  "alamat_bass": "",
  "nomor_telepon": "",
  "nama_zona": "Sumatera Barat",
  "contact_person": "",
  "email": ""
}

我想要的“nama_zona”指向的是AGAM,而不是“Sumatera Barat”。当事件(已更改)触发时,我如何在不更改值的情况下更改此值?我能想到的最佳解决方案是:我可能会在表单中设置
[value]=“lz.label”
,以便您在表单中获得所需的值

然后在更改事件中传递标签,并在数组中找到具有相同标签的对象

顺便说一句,如果你不需要ngModel来做其他事情的话,这里不需要使用ngModel。下面是我给你的建议:

<form [formGroup]="form">
  <select class="form-control" #t (change)="ZonaChanged(t.value)" formControlName="nama_zona">
    <option *ngFor="let lz of listKota" [value]="lz.label">  
      {{lz.label}}
    </option>
  </select>
</form>

现在在
zona
中,您拥有了完整的对象,您可以使用它。

没问题,很高兴我能提供帮助!:)
{
  "nama_bass": "",
  "alamat_bass": "",
  "nomor_telepon": "",
  "nama_zona": "Sumatera Barat",
  "contact_person": "",
  "email": ""
}
<form [formGroup]="form">
  <select class="form-control" #t (change)="ZonaChanged(t.value)" formControlName="nama_zona">
    <option *ngFor="let lz of listKota" [value]="lz.label">  
      {{lz.label}}
    </option>
  </select>
</form>
ZonaChanged(label){
  this.zona = this.listKota.find(x => x.label == label)
  // this.zona = this.zona.value;
}