Wie kann ich bedingt verwenden entweder [href] oder [routerLink] auf einen Anker?
Brauche ich für den gleichen anchor-link hingewiesen werden kann, bedingt lokal oder auf externe Ressourcen. Ich habe versucht,
<a [href]="outside?externalUrl:null" [routerLink]="outside?[]:['/route',id]" >test</a>
Aber es funktioniert nicht. Ich bekomme keine Fehler, aber es verweist auf den gleichen lokalen Seite und ignoriert die externe URL. Irgendwelche Ideen?
Eine andere Möglichkeit wäre, zu konstruieren den link, aber ich finde keine docs, wie Sie Zugang zu routerLink
im inneren ein service
Edit: ich weiß, ich kann Klonen, den ganzen link mit *ngIf
aber ich will nicht, es zu tun, mein link enthält ein video-tag mit einem buch von Optionen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einfachste Weg wäre, um
*ngIf /else
:EDIT#1: (Hässlichen workaround)
Da Sie nicht wollen, zu verwenden
*ngIf
(ich verstehe immer noch nicht warum), Sie können dies tun:Vorlage:
Komponente:
<ng-template>
nie Hinzugefügt, um den DOM in der browser Sie verarbeitet werden durch Eckige bevor der browser zu sehen bekommt, es. Ich verstehe nicht, was du meinst mit deinem Kommentar. Warum denkst du, dass ein Punkt der Liste wäre, kommen Sie einer separaten Liste? Auch die Frage sagt nichts über eine Liste.*ngIf
ist der Weg zu gehen...Bedingte href voranstellen auf attr. vor dem href arbeitete für mich mit null als einen Wert, wie diese:
Können Sie den Zugriff routerLink Instanz durch Einspritzen
RouterLinkWithHref
in der Richtlinie.Richtlinie:
Verwendung:
Nachteil dieses Ansatzes -
href
Attribut in den DOM nicht geändertNach einer Menge Untersuchungen, die ich umgesetzt habe eine andere Herangehensweise an dieses Problem, da mein
<a href>...</a>
enthält code inside (einen anklickbaren div-Beispiel). Zum Beispiel, ich will nichtngIf
denn das zwingt mich zu duplizieren div drin-code. Dies ist also meine Lösung:Komponente HTML -
Komponente JS
Dies war der einzige Weg, um es Arbeit einfacher, weil auch ich die "www.example.com" direkt zum
href
(mit oder ohne[ ]
), immer hängen Sie die Basis-url. Es ist nicht schön, aber funktional.