不能在离子3上设置ion-select的默认值

问题描述 投票:0回答:1

我已经在平台上阅读并尝试了所有相关问题,但无法找到解决方案。

这是问题;有一个groupmembers数组,登录用户在其中(不是多个)。我希望默认选择的选项是他。但我不能这样做。

这是我的HTML;

  <ion-item>
      <ion-label>Payer:</ion-label>
      <ion-select [(ngModel)]="payerInfo" cancelText="Vazgeç" okText="Tamam">
        <ion-option *ngFor="let member of groupMembersArray; let i = index" [value]="{payeruid: member.$key, payername: member.fullName, payerusername: member.username}" selected="member.$key==myUid">{{member.fullName}}</ion-option>
      </ion-select>
    </ion-item>

这是.ts相关代码;

payerInfo: any;

我甚至在构造函数中定义了payerInfo和myuid;

    this.myUid = this.afAuth.auth.currentUser.uid;

this.afDatabase.object(`users/${this.myUid}/profile`).subscribe(data => {
  this.payerInfo = {payeruid: this.myUid, payername: data.fullName, payerusername: data.username};
}); 

console.log(this.payerInfo)

控制台打印成功地为我提供了登录用户的数据,并且与ngModel payerInfo完全相同。那为什么它没有默认选择?谢谢你的阅读请帮助我

javascript angular ionic-framework ionic3
1个回答
1
投票

尝试使用compareWith解释here。与此示例类似:

<ion-item>
  <ion-label>Employee</ion-label>
  <ion-select [(ngModel)]="employee" [compareWith]="compareFn">
    <ion-option *ngFor="let employee of employees" [value]="employee"></ion-option>
  </ion-select>
</ion-item>


compareFn(e1: Employee, e2: Employee): boolean {
  return e1 && e2 ? e1.id === e2.id : e1 === e2;
}
© www.soinside.com 2019 - 2024. All rights reserved.