Änderung des Standardnamens der Klasse "Router-Link-Aktiv" durch Schreiben einer benutzerdefinierten Anweisung, die eine neue Klasse hinzufügt

Ich möchte Semantic UI in meiner Angular2-Anwendung verwenden. Das Problem ist, dass ich keine Router-Einstellung finde, die den Standardnamen der Klasse "Router-Link-Aktiv" ändert. Ich muss es einfach "aktiv" nennen, damit die Menüs richtig angezeigt werden.

Soweit ich weiß, existiert eine solche Einstellung nicht. Ich habe es in Vue.JS gesehen, also erwarte ich, dass es auch dort sein wird. Ist es eine gute Idee, Entwickler zu bitten, dies zu beheben?

So. Wir müssen eine benutzerdefinierte Direktive schreiben, die allen DOM-Elementen mit der Klasse "router-link-active" die Klasse "active" hinzufügt, aber auch hier treten einige Probleme auf.

Da ist ein ähnliche Frage aber die antwort ist zu kompliziert und hat bei mir nicht funktioniert. Also habe ich einige Dokumentationen gelesen und mich dazu entschlossen, so etwas besser zu machen:

commons.ts:

@Directive({
    selector: '.router-link-active',
    host: {'[class.active]': 'trueConst'} //just 'true' could also work I think...
})
export class ActiveRouterLinkClass {
    trueConst: boolean = true; //...if 'true' works we don't need this
}

Dann habe ich ActiveRouterLinkClass in mein @ importie main.component.ts und fügte es der Direktivenliste der Komponente hinzu. Leider habe ich jetzt diesen Fehler: "AUSNAHME: Unerwarteter Anweisungswert 'undefined' in der Ansicht der Komponente 'Main'". Bitte erklären Sie, was ich falsch gemacht habe!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage