Я пытаюсь включить HTML-фрагмент внутри ng-repeat
, но не могу заставить работать. Кажется, что текущий синтаксис ng-include
отличается от того, что было ранее: я вижу много примеров, использующих
<div ng-include src="path/file.html"></div>
Но в официальных документах сказано использовать
<div ng-include="path/file.html"></div>
Но тогда вниз по странице это отображается как
<div ng-include src="path/file.html"></div>
Несмотря на это, я пытался
<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>
Мой фрагмент не очень много кода, но он много чего происходит; Я прочитал в динамически загружаемом шаблоне внутри негоng-repeat
то, что может вызвать проблему, поэтому я заменил содержимое sidepanel.html
только словом foo
, но все равно ничего.
Я также попытался объявить шаблон прямо на странице следующим образом:
<script type="text/ng-template" id="tmpl">
foo
</script>
И работает через все варианты ng-include
ссылки на сценарий id
, и все еще ничего.
На моей странице было намного больше, но теперь я сократил это до следующего:
<!-- 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>
Заголовок отображается, но тогда мой шаблон не. Я не получаю ошибок в консоли или от Node, и если я щелкаю по ссылке в src="views/sidepanel.html"
инструментах разработчика, это приводит меня к моему шаблону (и отображает foo
).
ИЛИ
ИЛИ
Очки для запоминания:
-> В src нет пробелов
-> Не забудьте использовать одинарные кавычки в двойных кавычках для src
источник
ng-include="'...'"
Синтаксис определенно выглядит лучше.Для тех, кто занимается устранением неполадок, важно знать, что ng-include требует, чтобы URL-адрес находился в корневом каталоге приложения, а не в том же каталоге, где находится файлpart.html. (тогда как part.html - это файл представления, в котором можно найти встроенный тег разметки ng-include).
Например:
источник
add-more.html
находилось в том же каталоге, что иapp.html
. В моем ответеviews/
находится в том же каталоге, что иapp.html
.Для тех, кто ищет самое короткое из возможных решений для рендеринга элементов, поэтому комбинирование ng-repeat и ng-include :
<div ng-repeat="item in items" ng-include src="'views/partials/item.html'" />
На самом деле, если вы используете его таким образом для одного ретранслятора, он будет работать, но не для 2 из них! Angular (v1.2.16) по какой-то причине взбесится, если у вас есть 2 из них один за другим, поэтому безопаснее закрыть div пре-xhtml способом:
<div ng-repeat="item in items" ng-include src="'views/partials/item.html'"></div>
источник
<tbody ng-repeat="item in vm.items" ng-include="vm.searchTemplateBodyUrl" ng-cloak>
. Спасибо!Может быть, это поможет новичкам
источник
Это сработало для меня:
полный div:
источник
ng-view
иng-inclue
на одном элементе; src (см. templateUrl ) должен быть настроен в вашем роутере.someVar + 'some string'
попробуй это
источник
В ng-build ошибка файла не найдена (404). Таким образом, мы можем использовать приведенный ниже код
поставленный,
источник