Wie kann ich eine dynamische templateUrl für Angular2 Component haben?
Ich wollte Komponente ladentemplateUrl
basiert auf dem von der übergeordneten Komponente übergebenen Wert. Ich weiß, dass es passieren kannproperty binding
zur Komponente von have@Input
, Ich habe unten ein Beispiel angegeben, in demmyHtml
wird als @ übergebtemplateName
.
.Aber es gibt keine Möglichkeit, auf @ zuzugreif@Input
value insidetemplateUrl
Funktion. Meiner Ansicht nachtemplateUrl
wird als erstes ausgewertet, indem nach HTML gefragt wird. Danach wird der gesamte andere Komponentencode ausgeführt.
Wie in Winkel 1 hat die Fähigkeit, einen Wert von Attribut zu übergeben, und dann kann ich diesen Wert innerhalb von @ verwendtemplateUrl
Funktion als Parameter wie unten.
templateUrl: function(element, attrs){
//was getting value
return '/app/templates/'+ attrs.myTemplateName + '.html'
}
Aber das Gleiche, was ich in Angular2 nicht machen kann, wietemplateUrl
ist stark als @ geschriebstring
so nimmt es keine Funktion als Attribut an.
ibt es einen Weg, dies zu erreicheODE Ich habe etwas Einfaches verpasst?
Bearbeite
Hab ich mir schon angeschautdiese Antwort das ist nicht was ich will. In der angegebenen Antwort wird DOM mit @ gerenderDynamicComponentLoader
lädt eine andere Komponente.
Das ist nicht das, was ich wollte, weil das Erstellen einer neuen separaten Komponente für unterschiedlichetemplateUrl
macht in meinem Fall keinen Sinn.
Wie kann ich das umsetzen?