Ich habe einen Standard sidenav Layout entlang der Linien dieserscharfkantiges Material SideNav Inhalt Strategie
<mat-sidenav-container>
<mat-toolbar></mat-toolbar>
<router-outlet></router-outlet>
<mat-sidenav></mat-sidenav>
<mat-sidenav position="end"></mat-sidenav>
</mat-sidenav-container>
ich das zweite sidenav als Content-Bereich verwendet werden soll.
Bei diesem Projekt sind alle aktiven Routen einfach Komponenten mit einem Canvas-Bereich und einige grundlegende Informationen über das "Experiment". Vielleicht ein paar grundlegende Schieberegler oder Steuerelemente.
Grundsätzlich möchte ich das Content-Div in den zweiten Sitenav-Container gehen. Nur der Canvas ist visuell ein Kind der tatsächlichen Komponente.
Dies scheint verrückt, ich glaube nicht, dass ein Kind auf diese Weise erreichen sollte und abhängig von einer Elternstruktur. Ich verstehe das. Die Umkehrung, dass die Komponente ein Sitenav hinzufügen würde, wäre viel besser, aber das Sitenav muss zu einem Sitenav-Container gehören und liegt somit immer noch außerhalb der Grenzen der Komponente.
Also, was ist die beste Strategie stattdessen? Ich kann meinen Kopf nicht um mich herum drehen. Würden Sie das als 2 Komponenten sehen, die 2 äußere Anschlüsse benötigen und einen gemeinsamen Dienst benötigen, damit sie miteinander sprechen können? Gibt es einen besseren Weg?
Ich habe meine Frage aktualisiert. Würden Sie meine Canvas-Komponente in 2 Komponenten aufteilen? 'canvas-component' und' canvas-component-info'. Dann würde ich 2 Routeranschlüsse benötigen? Eine für die Hauptregion der Seite und eine für die Sitenav? Dann brauche ich einen Service, damit diese miteinander reden können? – Clark
1) Nicht sicher, ob die Canvas-Komponente geteilt werden muss. 2) Wenn Sie 2 verschiedene Steckdosen in Ihrer Vorlage benötigen, sollten Sie [aux routing] (https://Stackoverflow.com/a/34642273/3612903) verwenden, aber wenn Ihr Hauptinhaltsbereich (die Startseite) statisch ist - Sie Sie brauchen keine Route, um es anzuzeigen, verwenden Sie einfach die "home" -Komponente in Ihrer Vorlage und behalten Sie die "outlet" in Ihrem "canvas" side-nav. BTW, Sie haben immer noch 2 '' Elemente in 1 '' in Ihrem Beispiel. Jeder sollte seinen eigenen '' Wrapper haben. Soweit ich weiß, sollen SideNavs nicht verschachtelt sein. –
DotBot
Danke DotBot! Ich werde es mir ansehen, wenn ich zu Hause bin und melde mich wieder! Eine Sache ist, dass Sie 2 sidennavs haben können, aber nicht mehr als 2. https://material.angular.io/components/sidenav/overview – Clark