Ces liaisons fonctionnent très bien:liaisons Déléguer du composant angulaire 2 à l'élément imbriqué
<input type="checkbox" (click)="foo.bar()" [(ngModel)]="foo.baz">
Mais comment puis-je déléguer ces liaisons à l'intérieur d'une entrée un composant?
<custom-checkbox>Check me!</custom-checkbox>
... et voici la « coutume-checkbox.component.html »:
<span class="checkbox-wrap">
<input type="checkbox" class="checkbox"> <!-- This should have all the bindings -->
<span class="checkbox-styling"></span>
<span class="checkbox-label"><ng-content></ng-content></span>
</span>
J'utilise angulaire 1 pendant quelques années, mais juste commencé à utiliser angulaire 2 cette semaine . J'ai lu beaucoup d'articles tels que Custom form controls in Angular, docs angulaires, d'autres questions Stack Overflow quelque peu semblables, et le TypeScript utilisé sur Material Checkbox d'Angular 2 mais je ne comprends toujours pas comment ils ont tiré ceci. Il semble que cela devrait être plus simple.
Ceci est l'un des nombreux éléments d'interface utilisateur personnalisés que j'ai besoin de faire, donc j'espère que cet exemple va m'aider à comprendre les principes et la mise en œuvre qui me manque.
Je sais que je pourrais utiliser une case à cocher d'entrée avec un sélecteur dessus, et l'envelopper, mais je veux être aussi propre que le Angular 2 Material checkbox est. Je fais essentiellement la même chose (matériau angulaire 2), mais avec notre propre style, et beaucoup plus simpliste que toutes les options qu'ils offrent. Tout comme ils ont dit,
< md-case> fournit les mêmes fonctionnalités que un type d'entrée < native = "checkbox"> amélioré avec matériel style design et animations.
et c'est ce que j'essaie de faire.
mettre des liaisons directement sur le composant –
@RomanC Si je fais cela, le modèle ne s'appliquera pas à l'état de vérité de la case, et j'obtiens aussi cette erreur dans la console: 'EXCEPTION: Erreur dans./ AppComponent class AppComponent - modèle en ligne: 4: 41 provoqué par: Aucun accesseur de valeur pour le contrôle de formulaire avec un attribut de nom non spécifié ' –