2017-02-14 63 views
0

我堅持一個問題,獲取角2中的用戶界面在加載時填充數據的下拉列表。如何從頁面加載更新用戶界面從休息服務

我有一個服務,它連接到我們的內部SDK,在SDK中我們有休息的終點,返回observable,所以在我的代碼中,我打電話給sdk該方法返回一個可觀察和訂閱它接收數據,這是工作,因爲我可以看到它在網絡選項卡我得到的數據回來,但是我的用戶界面不會填充,而是奇怪的是,當我點擊提交按鈕的值出現或作爲一個實驗,我添加一個帶有散列值的url,當我點擊它時,似乎也觸發了UI,並且下拉列表接收到數據,爲什麼是這樣以及如何將它填充到無需提交任何內容?

export class RequestFormComponent implements OnInit{ 
    reqForm: FormGroup; 
    resultDetails: any[] = []; 

constructor(
    private formBuilder: FormBuilder, 
    private router: Router, 
    private requestDetails: DataServices) {} 

    ngOnInit(): void { 
    this.reqForm = this.formBuilder.group({ 
     acceptedTermsAndConditions: [false, Validators.pattern('true')], 
     itemSelection: ['', [Validators.required]] 
    }); 

    this.getSaleItems(); 
    } 

getSaleItems(): void { 
    this.requestDetails.getForSaleItems() 
    .subscribe((data) => this.resultDetails.push(data[0].itemsLIst)); 
    }; 

形式:

<form class="saleForm" 
      novalidate 
      (ngSubmit)="fullfillSale()" 
      [formGroup]="saleForm"> 

<select class="lngField" id="itemSelection" formControlName="itemSelection"> <option disabled="disabled" value="">-- Please select an Item --</option> <option *ngFor="let details of resultDetails">Item: {{ details.description }}</option> </select> 

</form> 
+0

您可以張貼代碼片段,以顯示你如何結合你的項目的下拉列表? –

+0

我用一些示例代碼更新了我的帖子 – Beto

+0

乍一看,我以爲你想爲每個「選項」綁定一個值。 '' 當數據返回時,this.resultDetails是否有你所期望的?數據[0] .itemsLIst是否爲錯字? –

回答

0

假設你正在使用的最終版本或更高版本,你可以鬆FormBuilder和簡單地使用FormGroup & FormControl

至於代碼,我懷疑你的問題就在這裏this.resultDetails.push(data[0].itemsLIst)。 是itemsLIst的數組?如果是這樣,你應該使用this.resultDetails.push(...data[0].itemsLIst);

這裏是plnkr使用FormGroup工作:Select Updated By Service

相關問題