加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何将选定的角度下拉值绑定到标量值的Observable?

发布时间:2020-12-17 07:23:12 所属栏目:安全 来源:网络整理
导读:我有一个角度材质选择组件,我想将下拉列表的选定值绑定到firebase的一个Observable of scalar.我想在不打开组件中的observable的情况下这样做.它看起来我无法使用异步管道绑定值.下面的代码抛出一个异常,因为mat-select的值不能绑定到“uiStateSvc.currentCl
我有一个角度材质选择组件,我想将下拉列表的选定值绑定到firebase的一个Observable of scalar.我想在不打开组件中的observable的情况下这样做.它看起来我无法使用异步管道绑定值.下面的代码抛出一个异常,因为mat-select的值不能绑定到“uiStateSvc.currentClient $| async”.
<mat-form-field *ngIf="(store.authorizedClients$| async)?.length > 0">
  <mat-select [(value)]="uiStateSvc.currentClient$| async" [compareWith]="compareFn">
    <mat-option *ngFor="let client of store.authorizedClients$| async" [value]="client"
    (onSelectionChange)="changeCurrentClient($event,client)">
      {{ client.name}}
    </mat-option>
  </mat-select>
</mat-form-field>

我从firebase中提取下拉列表的当前选定值,如下所示:

this.selectedClient$= this.authSvc.currentUser$.pipe(
      switchMap((x: firebase.User) => {
        if (x != null) {
          return this.afs.doc(`uistate/${x.uid}`).valueChanges().map((y: any) => y.selectedclient);
        } else {
          return Observable.of(null);
        }
      })
    );
你正在使用双重绑定,你不能用管道异步它,它只适用于组件中的变量,下面的代码应该工作,注意我将[(值)]改为[值]所以它将从可观察的| async默认值为select,并存储我在mat-option(onSelectionChange)=“changeCurrentClient($event,client)中已经有的更改,应该足够了
<mat-form-field *ngIf="(store.authorizedClients$| async)?.length > 0">
  <mat-select [value]="uiStateSvc.currentClient$| async" [compareWith]="compareFn">
    <mat-option *ngFor="let client of store.authorizedClients$| async" [value]="client"
    (onSelectionChange)="changeCurrentClient($event,client)">
      {{client.name}}
    </mat-option>
  </mat-select>
</mat-form-field>

希望能帮助到你

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读