W tym dokumencie: http://docs.angularjs.org/guide/directive jest napisane, że istnieje replace
konfiguracja dla dyrektyw:
szablon - zamień aktualny element na zawartość HTML. Proces wymiany migruje wszystkie atrybuty / klasy ze starego elementu do nowego. Aby uzyskać więcej informacji, zobacz sekcję Tworzenie komponentów poniżej.
kod 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
}
});
Kod HTML
<div myd1>
original content should be replaced
</div>
<div myd2>
original content should NOT be replaced
</div>
Ale ostatnia strona wygląda tak:
directive template1
directive template2
Wygląda na replace
to, że nie działa. Czy coś mi brakuje?
Demo na żywo: http://plnkr.co/edit/rGIgmjO81X2UxJohL4HM?p=preview
źródło
false
replace
jest teraz przestarzałyJak stwierdzono w dokumentacji, „zastąp” określa, czy obecny element zostanie zastąpiony dyrektywą. Inną opcją jest to, czy w zasadzie jest dodawany jako dziecko. Jeśli spojrzysz na źródło swojego pliku plnkr, zauważysz, że w przypadku drugiej dyrektywy, gdzie replace jest fałszem, znacznik DIV wciąż tam jest. W przypadku pierwszej dyrektywy tak nie jest.
Pierwszy wynik:
<span myd1="">directive template1</span>
Drugi wynik:
<div myd2=""><span>directive template2</span></div>
źródło
Zastąp [True | Fałsz (domyślnie)]
1. Replace the directive element.
1. When replace: true, the template or templateUrl must be required.
źródło
Otrzymałem również ten błąd, gdybym miał komentarz na najwyższym poziomie szablonu wśród rzeczywistego elementu głównego.
<!-- Just a commented out stuff --> <div>test of {{value}}</div>
źródło