Wie binden Modell mit kantigem Material <mat-button-toggle - >?
Werfen Sie einen Blick auf diese Plunker:
https://plnkr.co/edit/yu95hUrKlUh4Ttc5SwYD?p=preview
Wenn ich mit <mat-slide-toggle>
ich bin in der Lage, ändern Sie die Werte in meine Komponente:
<mat-slide-toggle [(ngModel)]="myFlagForSlideToggle">Toggle me!</mat-slide-toggle>
myFlagForSlideToggle
ist wie erwartet aktualisiert.
Aber wenn ich mit <mat-button-toggle>
, die Werte werden nicht aktualisiert. Ich hatte, um ngDefaultControl
um einmal dieses Beispiel funktioniert, aber ich bin mir nicht sicher, wie es ankommt.
<mat-button-toggle [(ngModel)]="myFlagForButtonToggle" ngDefaultControl>Toggle me!</mat-button-toggle>
Was ist die richtige Art zu binden, einen Knopf, um die Komponente?
InformationsquelleAutor Mateusz Stefek | 2017-11-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
MatButtonToggle
Komponente nicht umsetzenControlValueAccessor
daher können Sie nicht verwendenngModel
.ngDefaultControl
eingeführt wurde, für andere Zwecke.MatButtonToggle
soll ein Teil dermat-button-toggle-group
. Aber wenn Sie wollen verwenden Sie es als ein standalone-Komponente und binden Sie das Modell, um es hier einige Beispiel, wie Sie es tun können:Plunker Beispiel
InformationsquelleAutor yurzui
mat-button-toggle
dont haben einen booleschen Wert und[(ngModel)]
wird nicht funktionieren. Sehen doc.Diese schaltet kann so konfiguriert werden, Verhalten sich entweder als radio-buttons oder Checkboxen.
ein Anwendungsfall kann sein, wie dies
und ändern Sie Ihre boolean
myFlagForButtonToggle :string;
Alles funktioniert wie es sollte... nur import CommonModule für NgModel zu arbeiten...
Genial. Andere Lösungen arbeiten, aber dies ist bei weitem die einfachste und am meisten "normale" für Daten verbindlich.
Dies sollte sein die beste Antwort, das ist genau das design und die feature erwähnt in dem offiziellen Dokument. Aber
ngModel
lebt inFormModule
, was bedeutet, dassimport { FormsModule } from '@angular/forms';
ist erforderlich, um importiert werden, in AppModuleInformationsquelleAutor Hareesh
InformationsquelleAutor Uliana Pavelko
Wenn Sie versuchen, zu verwenden
mat-button-toggle
zum Umschalten zwischen Aktivierung /Deaktivierung von etwas, Sie verwenden eine Bindung aufmat-button-toggle-group
, und stellen Sie sicher, dass diemat-button-toggle
's sich die booleschen Wertetrue
undfalse
, nicht die string-Werte. Das heißt:InformationsquelleAutor Andrew Favaloro
Mit Winkel 6.1.3 und Eckig Material 6.4.6 Verwendung Slide Toggle (d.h.,
<mat-slide-toggle>
)Vorlage
Komponente
Ich bin mit dieser Lösung, und es bequem im Einklang mit der Style Guide Regel:
InformationsquelleAutor Eric D. Johnson