En este documento: http://docs.angularjs.org/guide/directive , dice que hay una replace
configuración para las directivas:
plantilla : reemplaza el elemento actual con el contenido del HTML. El proceso de reemplazo migra todos los atributos / clases del elemento antiguo al nuevo. Consulte la sección Creación de componentes a continuación para obtener más información.
código 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
}
});
código HTML
<div myd1>
original content should be replaced
</div>
<div myd2>
original content should NOT be replaced
</div>
Pero la página final se ve así:
directive template1
directive template2
Parece replace
que no funciona. ¿Me pierdo algo?
Demostración en vivo: http://plnkr.co/edit/rGIgmjO81X2UxJohL4HM?p=preview
fuente
false
replace
ahora está obsoletoComo dice la documentación, 'reemplazar' determina si el elemento actual es reemplazado por la directiva. La otra opción es si se agrega básicamente como niño. Si observa la fuente de su plnkr, observe que para la segunda directiva donde replace es falsa, la etiqueta div todavía está allí. Para la primera directiva no lo es.
Primer resultado:
<span myd1="">directive template1</span>
Segundo resultado:
<div myd2=""><span>directive template2</span></div>
fuente
Reemplazar [Verdadero | Falso (predeterminado)]
1. Replace the directive element.
1. When replace: true, the template or templateUrl must be required.
fuente
También recibí este error si tenía el comentario en el nivel superior de la plantilla con el elemento raíz real.
<!-- Just a commented out stuff --> <div>test of {{value}}</div>
fuente