0
votes

Comment prévenir la case à cocher pour être sélectionnée lorsque vous cliquez sur n'importe où sur la ligne?

Ma ligne Get Sélectionné Lorsque je clique n'importe où sur la ligne, même mon bouton radio et que Slide Toggle, je souhaite que cela ne soit sélectionné que lorsque l'utilisateur clique sur la case à cocher

<ng-container matColumnDef="select">

                <th mat-header-cell *matHeaderCellDef>
                </th>
                <td mat-cell *matCellDef="let row">
                    <mat-checkbox (change)="$event ? selection.toggle(row) : null"
                    [checked]="selection.isSelected(row)">
                    </mat-checkbox>
                </td>

</ng-container>


6 commentaires

Pouvez-vous partager la collerblitz?


Utilisation $ Event.StopPropagation ():


@mojtabaramezani sa ne fonctionne toujours pas j'ai ajouté (cliquez) = "$ Event.StopPropagation ();" Mais même sortie


@PrashantPimpale Voici le lien Stackblitz link Stackblitz.com/edit/angular-vzqj51


@Hussain a trouvé ceci: Github.com/angular/angular/issues/2042


merci@prashantPimpale mais quand j'utilise stoppropagation () sur tous les TD ma case à cocher Sélection de la ligne


3 Réponses :


0
votes

à utiliser (cliquez sur) = "$ Event.StopPropagation ()" sur Th et TD aide. Mais ici devrait être une manière plus logique


0 commentaires

1
votes

Grâce à votre exemple Stackblitz, je pouvais voir l'erreur. Vous faites une bascule supplémentaire de la sélection dans la ligne 78 (click) = "Sélection.toggle (rangée)" code>, viens de vous en débarrasser:

      <tr mat-row *matRowDef="let row; columns: displayedColumns;">


0 commentaires

3
votes

de la ligne ci-dessous:

changeSelection(row){
  setTimeout(()=>{
    this.selection.toggle(row);
  })
}


0 commentaires