web-dev-qa-db-fra.com

Case à cocher cochée si booléen est vrai avec Angular2

Je voudrais savoir comment faire une case à cocher cochée si la valeur est true et décochée si false avec Angular2.

Adult <input type="checkbox" value="{{person.is_adult}}">

{{person.is_adult}} est un boolean

Quelqu'un peut-il s'il vous plaît suggérer quelque chose? Merci

17
jiji

{{}} effectue une interpolation de chaîne et renforce true et false et Angular utilise par défaut la liaison de propriété et je suppose que la propriété attend des valeurs booléennes et non des chaînes:

<input type="checkbox" [checked]="person.is_adult">

Cela pourrait fonctionner aussi bien

<input type="checkbox" attr.checked="{{person.is_adult}}">

car avec la liaison d'attribut, le navigateur pourrait le traduire de l'attribut (qui ne peut être que des chaînes) en booléen lors de sa lecture dans sa propriété.

C'est aussi checked au lieu de value

Vous pouvez aussi utiliser ngModel

<input type="checkbox" [ngModel]"person.is_adult" name="isAdult">
<input type="checkbox" [(ngModel)]"person.is_adult" name="isAdult">

pour une liaison à sens unique ou à double sens.
Assurez-vous que le FormsModule soit importé si vous utilisez ngModel.

23
Günter Zöchbauer

il vous manque la parenthèse cochée

<input type="checkbox" [checked]="person.is_adult">

J'espère que cela t'aides!!

14
Madhu Ranjan