2017-09-27 1 views
0

J'utilise la bibliothèque matérielle angulaire 2 et l'élément md-checkbox.Réinitialiser <md-checkbox> pour le matériel 2

Quelque chose comme:

<md-checkbox id="myInput" 
      labelPosition="after" 
      (change)="toggleOnChange($event)"> 
    Label 
</md-checkbox> 

Plus tard un autre événement (non lié à cette entrée) Je veux réinitialiser son état (marque non contrôlée si elle est cochée). Comment fait-on ça? Est-ce que l'API le supporte? According to the docs, il n'y a pas de méthode pour le faire.

Si j'essaie de basculer des classes sur l'élément, cela le désactive visuellement, mais l'état est conservé.

+0

pouvez-vous être plus précis, vous voulez que le modèle intérieur reflète le changement ou l'étiquette même –

+0

ce que je devine est que vous voulez vrai si cochée, sinon faux droit? –

+0

Je n'utilise aucun modèle pour cela, alors j'ai pensé pouvoir le faire sans elle. J'ai juste besoin de le "décocher" sur un autre événement (par exemple, j'appuie sur le bouton de réinitialisation). –

Répondre

2

Donnez votre case à cocher un nom par exemple myCheckBox et définissez la propriété myCheckBox.checked sur false en cliquant sur le bouton.

<md-checkbox id="myInput" labelPosition="after" 
    #myCheckBox (change)="toggleOnChange($event)">Label 
</md-checkbox> 
<button md-button (click)="myCheckBox.checked = false">Reset Checkbox</button> 

OR Like this: 

<button md-button (click)="someFunction(myCheckBox)">Reset Checkbox In Method</button> 

Lien vers working demo.

+0

Merci, a travaillé comme un charme! J'ai manqué de nommer les éléments via '# myCheckBox' –

2

Typiquement, cela est mieux fait en utilisant un NgControl (comme NgModel ou FormControl). La case à cocher a une méthode toggle(). Si vous savez si la case est déjà cochée ou non, vous pouvez l'activer en conséquence

bascule | Permute l'état de la case cochée

https://material.angular.io/components/checkbox/api

+0

Bon, alors dans ce cas, comment vérifier si c'est 'coché'? Dans ce cas, je déclencherais «bascule». –

+2

Voir la réponse de @ Faisal. C'est plus simple. –