Estou tentando incluir um snippet HTML dentro de um ng-repeat
, mas não consigo fazer com que o include funcione. Parece que a sintaxe atual de ng-include
é diferente do que era anteriormente: vejo muitos exemplos usando
<div ng-include src="path/file.html"></div>
Mas nos documentos oficiais , ele diz para usar
<div ng-include="path/file.html"></div>
Mas, abaixo da página , é mostrado como
<div ng-include src="path/file.html"></div>
Independentemente disso, eu tentei
<div ng-include="views/sidepanel.html"></div>
<div ng-include src="views/sidepanel.html"></div>
<ng-include src="views/sidepanel.html"></ng-include>
<ng-include="views/sidepanel.html"></ng-include>
<ng:include src="views/sidepanel.html"></ng:include>
Meu snippet não é muito código, mas tem muita coisa acontecendo; Eu li no modelo de carregamento dinamicamente dentro deleng-repeat
que poderia causar um problema, então substituí o conteúdo sidepanel.html
por apenas a palavra foo
e ainda nada.
Eu também tentei declarar o modelo diretamente na página assim:
<script type="text/ng-template" id="tmpl">
foo
</script>
E percorrendo todas as variações de ng-include
referência aos scripts id
, e ainda nada.
Minha página tinha muito mais, mas agora a reduzi a isso:
<!-- index.html -->
<html>
<head>
<!-- angular includes -->
</head>
<body ng-view="views/main.html"> <!-- view is actually set in the router -->
<!-- views/main.html -->
<header>
<h2>Blah</h2>
</header>
<article id="sidepanel">
<section class="panel"> <!-- will have ng-repeat="panel in panels" -->
<div ng-include src="views/sidepanel.html"></div>
</section>
</article>
<!-- index.html -->
</body>
</html>
O cabeçalho é renderizado, mas meu modelo não. Não recebo erros no console ou no Node e, se clicar no link nas src="views/sidepanel.html"
ferramentas de desenvolvimento, ele será levado ao meu modelo (e exibições foo
).
OU
OU
Pontos para lembrar:
-> Não há espaços no src
-> Lembre-se de usar aspas simples em aspas duplas para src
fonte
ng-include="'...'"
sintaxe definitivamente parece melhor.Para a solução de problemas, é importante saber que o ng-include exige que o caminho da URL seja do diretório raiz do aplicativo e não do mesmo diretório em que o primary.html reside. (parcial.html é o arquivo de exibição que pode ser encontrado na tag de marcação ng-include embutida).
Por exemplo:
fonte
add-more.html
estivesse no mesmo diretório queapp.html
. Na minha resposta,views/
está no mesmo diretório queapp.html
.Para aqueles que procuram a menor solução possível de "renderizador de itens" de uma parcial, então uma combinação de ng-repeat e ng-include :
<div ng-repeat="item in items" ng-include src="'views/partials/item.html'" />
Na verdade, se você usá-lo assim para um repetidor, ele funcionará, mas não para 2 deles! O Angular (v1.2.16) vai surtar por algum motivo, se você tiver dois deles um após o outro, por isso é mais seguro fechar a div da maneira pré-xhtml:
<div ng-repeat="item in items" ng-include src="'views/partials/item.html'"></div>
fonte
<tbody ng-repeat="item in vm.items" ng-include="vm.searchTemplateBodyUrl" ng-cloak>
. Obrigado!Talvez isso ajude para iniciantes
fonte
Isso funcionou para mim:
div completo:
fonte
ng-view
eng-inclue
no mesmo elemento; o src (consulte templateUrl ) deve ser configurado no seu roteador.someVar + 'some string'
tente isso
fonte
No ng-build, ocorre um erro de arquivo não encontrado (404). Para que possamos usar o código abaixo
instado de,
fonte