SelectionChange的偏移量垫选择角度

时间:2019-02-14 15:49:07

标签: html angular typescript drop-down-menu

我有一个下拉菜单,当我选择该下拉菜单的元素时,我想提取其所有数据。

  

我的.ts是:

completeInputAgencyAndVersion(event: MatSelectChange) {
 if (event.value > 0) {
   this.service.getCodeList(event.value).subscribe(val => { this.currCodeList = val; });
   if (this.currCodeList) {
     this.contextScheme.schemeId = this.currCodeList.listId.toString();
     this.contextScheme.schemeAgencyId = this.currCodeList.agencyId.toString();
     this.contextScheme.schemeVersionId = this.currCodeList.versionId.toString();
    // this.contextScheme.ctxSchemeValues = this.convertCodeListValuesIntoContextSchemeValues(this.currCodeList.codeListValues);
     this._updateDataSource(this.convertCodeListValuesIntoContextSchemeValues(this.currCodeList.codeListValues));
    // this.dataSource.data = this.contextScheme.ctxSchemeValues;
    }
 } else {
 this.contextScheme.schemeId = '';
 this.contextScheme.schemeAgencyId = '';
 this.contextScheme.schemeVersionId = '';
 this._updateDataSource([]);
 }
}
  

我的.html是:

  <mat-form-field>
    <mat-select placeholder="Code List" [(ngModel)]="contextScheme.codeListId" (selectionChange)="completeInputAgencyAndVersion($event)">
      <mat-option [value]="0"> None </mat-option>
      <mat-option *ngFor="let codeList of codeListsFromCodeList" [(value)]="codeList.codeListId">
        {{codeList?.codeListName}}
      </mat-option>
    </mat-select>
  </mat-form-field>

一切正常,但是由于我使用mat-select的selectionChange方法,所以当我选择第一个值时,它不被理解为更改,因此没有任何反应。然后,当我选择另一个元素时,它只是获得正确的信息,但从最后一个选择中,基本上是selectionChange的bc。

我已经发布了堆栈:Offset selectionChange Angular,您可以检查更多信息。

谢谢。

2 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解您的意思,但是您会通过[(value)]获得数据。

如果您要查找codeList,则可以更改:

[(value)]="codeList.codeListId"[(value)]="codeList"

就像这样,它应该选择您的codeList

答案 1 :(得分:0)

不是selectionChange而是subscribe是异步的。我不得不添加另一个异步方法来修复它,现在它可以工作了。 谢谢!