我真的很努力地將來自第三方API的HTTP響應綁定到我的Angular Reactive Form中的Select下拉列表中。將響應綁定到反應形式的Select下拉
我知道如何填充選擇,如果我硬編碼,如:
merchants = [
new MerchantOptions('1', 'Fake Test'),
];
但我無能,如何從一個HTTP響應填充選擇?
我似乎無法將響應綁定到窗體控件?
請你能指教嗎?
export class myComponent implements OnInit {
myForm: FormGroup;
stores = this.apiService.getStores()
.subscribe(
(response) => {
console.log(response),
this.myForm.setValue(response)
},
(error) => console.log(error)
);
constructor(private apiService: ApiService) { }
ngOnInit() {
this. myForm = new FormGroup({
'merchants': new FormControl(null, Validators.required),
});
}
我的數據模型:
export class MerchantOptions {
constructor(public id: string, public name: string) { }
}
這是我的表是這樣的:在我的鉻CONSOL
<form [formGroup]="myForm" (ngSubmit)="onPost()">
<div class="form-group">
<label for="merchants">Stores</label>
<select id="merchants"
formControlName="merchants"
class="form-control">
<option *ngFor="let merchant of merchants" value="{{ merchant.id }}">
{{ merchant.name }}
</option>
</select>
</div>
<button class="btn btn-primary" type="submit">Submit</button>
</form>
API響應輸出:
請原諒上面的任何命名或拼寫錯誤,我鍵入上面的代碼片段只是爲了讓您不要從實際項目複製粘貼。
太謝謝你了! 添加商家:MerchantOptions []; 所有的區別。 將其設置爲響應的伎倆! this.merchant =回覆 你從挫折的日子裏救了我。 再次感謝;-) – user4003765
如果有幫助,然後接受它作爲答案:) – k11k2