4

현재 설정 :각도 재료 여러 옵션을 선택

  • 각도 4
  • 각도 재료
  • 중포 기지 (경우 FireStore)

예상 동작 :

  • 내 각 재료 안의 다중 배열 내 배열에서 처음에 여러 객체를 선택합니다.

현재 동작 : 없음 항목을 처음 선택하지

  • .
  • 클릭하면 제대로 선택됩니다. 중포 기지 (경우 FireStore) 작업 (문서 참조를 저장)

추가 주 (들)을 저장

  • 는 :

    • 난 단지 객체 속성을 사용하는 경우 그들은 처음에 제대로 선택합니까 .
    • classe.multiclassement
    • 클래스의 개체 내 배열 참조의 배열입니다

    코드 샘플 :

    <mat-select placeholder="Multiclassement" [(ngModel)]="classe.multiclassement" multiple> 
     
        <mat-option *ngFor="let c of classes | async" [value]="c">{{c.nom}}</mat-option> 
     
    </mat-select>

  • +0

    당신이 [plunker]을 만들 수를 (그것을 재현하려면 https://plnkr.co/)? – Jared

    답변

    1

    우리는 객체를 다루기 때문에 multiclassesment 배열의 객체는 classes 배열의 객체에 대한 참조를 가지지 않으므로 Angular가 바인딩을 만들 수 없습니다. 우리는과 같이 compareWith (docs)를 사용하여이 문제를 해결 할 수 있습니다

    <mat-select [compareWith]="compareWithFn" placeholder="Multiclassement" 
          [(ngModel)]="classe.multiclassement" multiple> 
    

    및 TS :

    compareWithFn(item1, item2) { 
        return item1 && item2 ? item1.nom === item2.nom : item1 === item2; 
    } 
    

    DEMO

    +0

    완벽하게 작동합니다. 정말 고마워요! – DominikG

    +0

    문제 없습니다. 도움이 되니 기쁩니다! :) – Alex