2017-12-14 9 views
0

나는 플랫폼에서 관련된 모든 질문을 읽고 시도했지만 해결책을 찾을 수 없습니다.이온의 기본 이온 선택을 설정할 수 없습니다 3

여기에 문제가 있습니다. 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과의 정확히 동일한 형태의 데이터를 제공합니다. 그렇다면 왜 기본 선택으로 제공되지 않는가? 읽고 도와 주셔서 감사합니다.

+0

[설정] = "member.id하면 myUid =="이 작동 될 수 시도. – Husain

+0

시도해 봤어 : ( – ugrdursun

답변

1

here과 같이 compareWith을 사용해보세요. 이 예와 유사 :

<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; 
} 
+0

대답을 주셔서 감사하지만 그런 식으로 배열의 다른 데이터를 잃는다. 내가 필요합니다. 만약 내가 fullname 얻을, 다른 데이터 (uid 및 사용자 이름) 다른 함수에 의해 검색해야합니다. – ugrdursun

+0

Ahn, 당신은 compareWith 함수가 필요할 수도 있습니다. 새로운 수정 내용을 확인하십시오. – Ari

+0

그래, 그 해결책을 보았지만 그것을 이해하지 못했고, 내 경우에 그것을 적용하는 방법을 몰랐다. 솔루션의 값은 ngModel과 동일하지만 이미 변수 만 사용하고 있지만 값이 객체 인 경우 ngModel과 마찬가지로 생성자에서 값을 정의해도 실패합니다. – ugrdursun