Estoy tratando de incluir un fragmento de HTML dentro de un ng-repeat, pero no puedo hacer que la inclusión funcione. Parece que la sintaxis actual de ng-includees diferente de lo que era anteriormente: veo muchos ejemplos usando
<div ng-include src="path/file.html"></div>
Pero en los documentos oficiales , dice usar
<div ng-include="path/file.html"></div>
Pero luego en la página se muestra como
<div ng-include src="path/file.html"></div>
De todos modos, lo intenté
<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>
Mi fragmento no es mucho código, pero está sucediendo mucho; Leí en la plantilla de carga dinámica dentrong-repeat que eso podría causar un problema, por lo que reemplacé el contenido sidepanel.htmlcon solo la palabra fooy aún nada.
También intenté declarar la plantilla directamente en la página de esta manera:
<script type="text/ng-template" id="tmpl">
foo
</script>
Y recorriendo todas las variaciones de hacer ng-includereferencia a la secuencia de comandos id, y aún nada.
Mi página tenía mucho más, pero ahora la he reducido a esto:
<!-- 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>
El encabezado se muestra, pero mi plantilla no. No obtengo errores en la consola o desde Node, y si hago clic en el enlace en las src="views/sidepanel.html"herramientas de desarrollo, me lleva a mi plantilla (y pantallas foo).

O
O
Puntos para recordar:
-> No hay espacios en src
-> Recuerde usar comillas simples en comillas dobles para src
fuente
ng-include="'...'"sintaxis definitivamente se ve mejor.Para esos problemas, es importante saber que ng-include requiere que la ruta de la url sea del directorio raíz de la aplicación y no del mismo directorio donde reside el partial.html. (mientras que partial.html es el archivo de vista donde se puede encontrar la etiqueta de marcado ng-include en línea).
Por ejemplo:
fuente
add-more.htmlestuviera en el mismo directorio queapp.html. En mi respuesta,views/está en el mismo directorio queapp.html.Para aquellos que buscan la solución de "renderizador de elementos" más breve posible desde un parcial, entonces una combinación de ng-repeat y ng-include :
<div ng-repeat="item in items" ng-include src="'views/partials/item.html'" />En realidad, si lo usa así para un repetidor, funcionará, ¡pero no para 2 de ellos! Angular (v1.2.16) se asustará por alguna razón si tiene 2 de estos uno tras otro, por lo que es más seguro cerrar el div de la forma pre-xhtml:
<div ng-repeat="item in items" ng-include src="'views/partials/item.html'"></div>fuente
<tbody ng-repeat="item in vm.items" ng-include="vm.searchTemplateBodyUrl" ng-cloak>. ¡Gracias!Tal vez esto ayude a los principiantes.
fuente
Esto funcionó para mí:
div completo:
fuente
ng-viewyng-inclueen el mismo elemento; el src (consulte templateUrl ) debe configurarse en su enrutador.someVar + 'some string'prueba esto
fuente
En ng-build, se produce un error de archivo no encontrado (404). Entonces podemos usar el siguiente código
en lugar de
fuente