Eu tenho uma tag personalizada em um routeProvider
modelo que exige um directive
modelo. O version
atributo será preenchido pelo escopo que, em seguida, solicita o modelo certo.
<hymn ver="before-{{ week }}-{{ day }}"></hymn>
Existem várias versões do hino com base em que semana e dia é. Eu estava antecipando usar a diretiva para preencher a .html
parte correta . A variável não está sendo lida pelo templateUrl
.
emanuel.directive('hymn', function() {
var contentUrl;
return {
restrict: 'E',
link: function(scope, element, attrs) {
// concatenating the directory to the ver attr to select the correct excerpt for the day
contentUrl = 'content/excerpts/hymn-' + attrs.ver + '.html';
},
// passing in contentUrl variable
templateUrl: contentUrl
}
});
Há vários arquivos no diretório trechos que são rotulados before-1-monday.html
, before-2-tuesday.html
...
angularjs
angularjs-directive
Alen Giliana
fonte
fonte
Respostas:
Você pode usar
ng-include
diretiva.Tente algo como isto:
UPD. para assistir
ver
atributofonte
ver
alterações de atributo e a diretiva de renderização novamente?<hymn ...>
deve funcionar bem. Ou talvez seja hora de construir um protótipo no jsfilddle ?ve take a look at your site, and changed [JSFiddle](http://jsfiddle.net/JQgG5/6/). All you need is
escopo: {} `na declaração de diretiva - isolamento do escopo . Também recomendo fortemente que você use a última versão do angular.<script type="text/ng-template" id="...">
- é uma alternativa local às páginas htmlPara que você possa fornecer templateUrl via marcação
Agora você apenas cuida para que a propriedade contentUrl preencha com o caminho gerado dinamicamente.
fonte
once per $compile phase
. Em outras palavras, se você usarng-repeat
sua diretiva e desejar definir um modelo individual com base nong-repeat
contexto específico do item, ela não funcionará, porque a$compile
fase percorre sua diretiva uma vez antes que a realng-repeat
ocorra. Assim, em que o significado está sendo chamado uma vez ...Graças a @pgregory, eu poderia resolver meu problema usando esta diretiva para edição embutida
fonte
Você não precisa de diretiva personalizada aqui. Basta usar o atributo ng-include src. É compilado para que você possa inserir o código. Consulte plunker com solução para o seu problema.
fonte
Eu tive o mesmo problema e resolvi de uma maneira um pouco diferente dos outros. Estou usando o angular 1.4.4.
No meu caso, eu tenho um modelo de shell que cria um painel CSS Bootstrap:
Quero incluir modelos de corpo do painel, dependendo da rota.
Em seguida, incluí o seguinte modelo quando a rota é
#/students
:O modelo panel-body.html da seguinte maneira:
Amostra de dados no caso de alguém querer experimentar:
fonte
Eu tenho um exemplo sobre isso.
fonte