如何解决如果值是异步的,如何在函数中使用 ngModel 旧值?
我有一个输入 (dropdown
),在获得新输入时,我想检查有关旧输入和新输入的内容。但是,我只有异步格式的数据(旧输入)。
<p-dropdown [options]="valueOptions" [ngModel]="storeValue$ | async"
(ngModelChange)="checkChange($event,???)" </p-dropwdown>
如果旧值不是异步的,我可以执行以下操作:
<p-dropdown [options]="valueOptions" [ngModel]="storeValue"
(ngModelChange)="checkChange($event,storeValue)" </p-dropwdown>
或者如果商店值不可为空,我可以这样做
<p-dropdown *ngIf="storeValue$ | async as val" [options]="valueOptions" [ngModel]="val"
(ngModelChange)="checkChange($event,val)" </p-dropwdown>
鉴于值是可以为空并且它也是异步的,我如何在 checkChange 函数中访问它?
解决方法
您可以使用 tap 运算符来存储初始值。然后您可以与当前值进行比较。
component.ts
storeValue$.pipe(tap(value=>this.initialValue = value));
checkChange(newValue){
this.initialValue === newValue;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。