默认情况下,只有在HttpClient提取下拉列表后,才选择一个选项

时间:2019-05-30 11:23:06

标签: angular7

我在app.component.html中有一个选择字段,如下所示:

<select class="form-control" name="status" [(ngModel)]="statusDesc">
          <option *ngFor="let status of statusList">{{status}}</option>
</select>

我通过调用HttpClient来获取ngOnInit方法中的状态列表:

statusList: any;
ngOnInit() {
this._http.get(this.APP_URL + '/statusList1').subscribe(
      data => {
        this.statusList = data;
        console.log(this.statusList);
      },
      error => {
        console.log('Error occured', error);
      }
    );
}

我想在ngOnInit方法本身中为statusDesc设置默认值'InProgress',如下所示,但是它没有在html页面中设置值。 URL中肯定会在列表中返回单词“ InProgress”。 另外,如果我尝试在Http GET调用后提供console.log,则不会在控制台上打印statusList值。

ngOnInit() {
this._http.get(this.APP_URL + '/statusList1').subscribe(
...
...
this.statusDesc="InProgress";
console.log(this.statusDesc);
}

我猜这是因为GET方法进行了异步调用。有办法解决这个问题吗?

我也尝试过这种方法,但是结果是一样的。

<option *ngFor="let status of statusList" [selected]="status == selectedStatusValue">{{status}}</option>

0 个答案:

没有答案