Como posso ter templateUrl dinâmico para o componente Angular2?
Eu queria carregar o componentetemplateUrl
com base no valor transmitido do componente pai. Eu sei que pode passarproperty binding
para componente por ter@Input
, Dei exemplo abaixo em quemyHtml
será passado comotemplateName
.
.Mas não há capacidade de acessar@Input
valor dentrotemplateUrl
função. eu acho quetemplateUrl
é a primeira coisa a avaliar solicitando HTML, depois que todos os outros códigos de componentes são executados.
Como no angular 1, é possível passar algum valor do atributo, e então eu posso usar esse valor dentrotemplateUrl
funcionar como um parâmetro como abaixo.
templateUrl: function(element, attrs){
//was getting value
return '/app/templates/'+ attrs.myTemplateName + '.html'
}
Mas a mesma coisa que não posso fazer no Angular2, comotemplateUrl
é fortemente digitado comostring
portanto, não assume a função como um atributo.
Existe uma maneira de conseguir issoOU Perdi algo simples?
Editar
Eu já olheiesta resposta o que não é o que eu quero. Na resposta referida, ele processa o DOM usandoDynamicComponentLoader
que carrega outro componente.
Não era isso que eu queria, porque criar um novo componente separado para ter diferentestemplateUrl
não faz sentido no meu caso.
Alguma idéia de como faço para implementar isso?