Ich arbeite an einer gemeinsamen Sidebar-Komponente für meine Anwendung, die von einigen Modulen wiederverwendet wird.Standardanweisungen in Angular
Verwendung der Seitenleiste im Modul Benutzer, zum Beispiel könnte wie folgt aussehen:
<sidebar>
<sidebar-item title="Users"
icon="people"
routerLink="/users"
routerLinkActive="active"
[routerLinkActiveOptions]="{exact: true}"></sidebar-item>
<sidebar-item title="Create User"
icon="add_circle"
routerLink="https://stackoverflow.com/users/create"
routerLinkActive="active"
[routerLinkActiveOptions]="{exact: true}"></sidebar-item>
<sidebar-item title="Manage Users"
icon="edit"
routerLink="https://stackoverflow.com/users/manage"
routerLinkActive="active"
[routerLinkActiveOptions]="{exact: true}"></sidebar-item>
</sidebar>
Dieser Code wird in anderen Modulen sehen ziemlich ähnlich. Intern wird die Sidebar-Komponente gerendert, sodass die untergeordneten Elemente in einem <ng-content>
Block Zugriff auf die unter Verwendung von @ContentChildren
erstellten untergeordneten Elemente erhalten.
Was ich versuche, Problemumgehung ist die Notwendigkeit, routerLinkActive
und routerLinkActiveOptions
für jede Instanz von sidebar-item
anzugeben. Sie werden immer gleich sein und damit das Styling funktioniert, muss routerLinkActive
immer auf active
eingestellt werden.
Gibt es eine Möglichkeit, dass ich das zum Laufen bringen kann, ohne diese Anweisungen wiederholen zu müssen (entweder durch Vorgabe eines voreingestellten Wertes oder auf andere Weise)?
Ja, aber die Sidebar Komponente wird in mehrere Module wiederverwendet werden (es ist im Grunde ein Kontextmenü mit Links zum aktuellen Modul). Wenn ich 6 Module verwende, die die Sidebar-Komponente verwenden, wird dieser Code 6 Mal kopiert. – NRaf
Code könnte Teil der Komponentenklasse sein, die geteilt wird. – pixelbits