2017-10-10 1 views
1

Je suis nouveau à Angular2, j'ai un groupe radio et j'essaye de le lier en utilisant [(ngModel)] à l'entité person.testBoolean pour que je puisse l'enregistrer dans la base de données. Je veux définir une valeur par défaut comme sélectionnée et j'ai vu quelques exemples et trouvé qu'ils définissent la valeur par défaut à [(ngModel)] mais dans mon cas je veux le lier à mon entité donc je ne peux pas utiliser [(ngModel)] . Quelqu'un peut-il conseiller des options alternatives. checked = idx ne fonctionne pas.Angular2 comment régler le bouton radio comme coché avec une valeur par défaut

<div class="form-group"> 
    <label for="radioboolean">Boolean: </label> 
    <div *ngFor="let entry of entries; let idx = index" class="radio-inline" > 
     <input type="radio" [(ngModel)]="person.testBoolean" name="radiogroup" [checked]="idx === 1" [value]="entry.id" />{{ entry.description }} 
    </div> 
</div> 

Code Ts:

entries = [ 
       {id: 1, description: 'True' }, 
       {id: 2,description: 'False'}, 
       {id: 3,description: 'Undefined'} 
      ]; 

personne est mon entité:

export interface IPerson { 

    id: string; 
    name: string; 
    testNumber: number | null; 
    testDatetime: Date | null; 
    testBoolean: boolean | null; 
    // Refs to parent entities 
    team: ITeam; 
    teamId: string; 

}; 
+0

oui, c'est vrai nous pouvons directement utiliser la colonne id mais cela n'a pas fonctionné :-(, default bouton radio n'est toujours pas sélectionné/vérifié –

Répondre

2

Vous pouvez utiliser l'identifiant d'entrée comme ceci: [checked]="entry.id === 1"

<div *ngFor="let entry of entries; let idx = index" class="radio-inline" > 
       <input type="radio" [(ngModel)]="person.testBoolean" name="radiogroup" [checked]="entry.id === 1" [value]="entry.id" />{{ entry.description }} 
      </div> 
+0

oui, c'est vrai que nous pouvons utiliser directement la colonne id mais cela n'a pas fonctionné :-(, le bouton radio par défaut n'est toujours pas sélectionné/vérifié –

+0

Essayé '[checked] =" entry.id = == default "'? Où default = 'this.default' dans le composant. – Swoox

+0

Salut Swoox, Merci, j'ai essayé comme ci-dessus, mais pour une raison quelconque "this.default" est défini à undefined donc les boutons radio par défaut n'est pas sélectionné. Fichier tapuscrit 'default: 3;' 'entries = [{id: 1, description: 'Vrai'}, {id: 2, description: 'Faux'},' '{id: 3, description: 'Indéfini' }]; '' [checked] = "entry.id === default" ' –