gpt4 book ai didi

javascript - 如何获取标签字符串作为下拉Angular2中的formControl值?

转载 作者:太空宇宙 更新时间:2023-11-04 15:49:05 24 4
gpt4 key购买 nike

这是我想要实现的目标,我想获取标签字符串作为我的 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>

这是我的 app.component.ts :

      constructor(private frmInputMasterBassService: FrmInputMasterBassService, private formBuilder: FormBuilder) {

this.sStorage = sessionStorage.getItem('mAuth');
this.sStorage = JSON.parse(this.sStorage);

this.frmInputMasterBassService.getKotaList().subscribe(
data => {
this.data = data.json();
for (var i = 0; i < this.data.length; i++) {
this.listKota.push({label:this.data[i].KOTA, value:this.data[i].PROVINSI});
}

this.selectedListKota = this.listKota[0].value;
},
err => {
console.log(err);
}
}
);

this.form= this.formBuilder.group({
nama_bass: ['', Validators.nullValidator],
alamat_bass: ['', Validators.nullValidator],
nomor_telepon: ['', Validators.nullValidator],
nama_zona: ['', Validators.nullValidator],
contact_person: ['', Validators.nullValidator],
email: ['', Validators.nullValidator]
})

}

ZonaChanged(value){
console.log(value);
this.zona = value;
}

这是我的 listKota 数组 JSON,如下所示:

  [{
"label": "AGAM",
"value": "Sumatera Barat"
},
{
"label": "AIR MOLEK",
"value": "Riau"
}]

当我想选择 AGAM 时,我的表单 JSON 将如下所示:

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

我想要的“nama_zona”指向 AGAM,而不是“Sumatera Barat”,当事件(更改)触发时,我如何在不更改值的情况下更改此值

最佳答案

我能想到的最佳解决方案:我可能会在表单中设置[value]="lz.label",以便您在表单中获得所需的值。

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

顺便说一句,如果您不需要它来做其他事情,则无需在此处使用 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>

ZonaChanged方法:

ZonaChanged(label){
this.zona = this.listKota.find(x => x.label == label)
// this.zona = this.zona.value;
}

Demo

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

关于javascript - 如何获取标签字符串作为下拉Angular2中的formControl值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43290248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com