В этом документе: http://docs.angularjs.org/guide/directive говорится, что есть replace
конфигурация для директив:
шаблон - заменить текущий элемент содержимым HTML. В процессе замены все атрибуты / классы переносятся из старого элемента в новый. См. Раздел «Создание компонентов» ниже для получения дополнительной информации.
код javascript
app.directive('myd1', function(){
return {
template: '<span>directive template1</span>',
replace: true
}
});
app.directive('myd2', function(){
return {
template: '<span>directive template2</span>',
replace: false
}
});
HTML-код
<div myd1>
original content should be replaced
</div>
<div myd2>
original content should NOT be replaced
</div>
Но последняя страница выглядит так:
directive template1
directive template2
Кажется replace
, не работает. Я что-нибудь упускаю?
Живая демонстрация: http://plnkr.co/edit/rGIgmjO81X2UxJohL4HM?p=preview
источник
false
replace
устарелаКак указано в документации, «replace» определяет, заменяется ли текущий элемент директивой. Другой вариант - добавить ли он просто как дочерний элемент. Если вы посмотрите на источник своего plnkr, обратите внимание, что для второй директивы, где replace имеет значение false, тег div все еще существует. Для первой директивы это не так.
Первый результат:
<span myd1="">directive template1</span>
Второй результат:
<div myd2=""><span>directive template2</span></div>
источник
Заменить [True | False (по умолчанию)]
1. Replace the directive element.
1. When replace: true, the template or templateUrl must be required.
источник
Также я получил эту ошибку, если у меня был комментарий на верхнем уровне шаблона среди фактического корневого элемента.
<!-- Just a commented out stuff --> <div>test of {{value}}</div>
источник