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-include
es 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.html
con solo la palabra foo
y 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-include
referencia 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.html
estuviera 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-view
yng-inclue
en 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