Auf einer größeren Bildschirmgröße habe ich 3 Spalten Inhalt. Auf einer kleineren Bildschirmgröße möchte ich den Inhalt in einem Tab-Steuerelement mit 3 Tabs anzeigen.Ändern, wie Inhalt angezeigt wird basierend auf der Bildschirmgröße in Angular 4
Ich habe dies funktioniert mit dem HTML unten. Das Problem ist, dass, wenn ich Änderungen an den Daten mache, an die eine Komponente gebunden ist, die andere Kopie der Komponente nicht aktualisiere. Wenn also Daten geändert werden, während der Bildschirm groß ist, wird der Bildschirm verkleinert, er wechselt zu den Registerkarten, aber die Daten werden nicht als aktualisiert angezeigt. Das eigentliche Datenobjekt im Code wird aktualisiert.
Wie kann ich die kopierten Komponenten synchronisieren, um immer dieselben anzuzeigen? Grundsätzlich, wenn man sich verändert, ahmt der andere diese Änderungen nach. Oder gibt es einen anderen/besseren Weg, um das gleiche Ziel zu erreichen, Inhalte in Tabs anzuzeigen, wenn der Bildschirm klein ist.
<div fxHide fxShow.gt-sm >
<div>
<h3>Column 1</h3>
<custom-component1
[(data)]="data1">
</custom-component1>
</div>
<div>
<h3>Column 2</h3>
<custom-component2
[(data)]="data2">
</custom-component2>
</div>
<div>
<h3>Column 3</h3>
<custom-component3
[(data)]="data3">
</custom-component3>
</div>
<mat-tab-group fxShow fxHide.gt-sm>
<mat-tab label="Column 1">
<div>
<h3>Column 1</h3>
<custom-component1
[(data)]="data1">
</custom-component1>
</div>
</mat-tab>
<mat-tab label="Column 2">
<div>
<h3>Column 2</h3>
<custom-component2
[(data)]="data2">
</custom-component2>
</div>
</mat-tab>
<mat-tab label="Column 3">
<div>
<h3>Column 3</h3>
<custom-component3
[(data)]="data3">
</custom-component3>
</div>
</mat-tab>
</mat-tab-group>
</div>
Mir ist klar, dass ich Radioknöpfe in meiner Frage nicht erwähnt habe. Nächstes Mal werde ich ein Beispiel machen – Kurbol