Búsqueda de sitios web

javascript - ¿Beneficio de usar ng-container frente a template?


En Angular podríamos hacer:

template: `<ng-container #c></ng-container>`

o :

template: `<template #c></template>`

Crear un contenedor de vista que esté oculto cuando se renderice la plantilla.

¿Hay alguna diferencia entre usar ng-container y la alternativa de plantilla HTML? Supongo que Angular tiene que tener sus propios contenedores de plantilla como ng-template o ng-container ya que el uso del elemento de plantilla html sin procesar podría romper los entornos de ejecución que no son navegadores, como clientes móviles, etc.

Respuesta #1

El <ng-container> siempre se renderiza, pero no representa un elemento del DOM. Aun así, está adjunto a la vista del componente.

El <ng-template> solo se renderizará si se solicita explícitamente.

Aquí hay una buena referencia sobre el tema:

http://nataliesmith.ca/blog/2018-05-01-ngtemplate-ngcontainer-ngcontent/

Crear un contenedor de vista que esté oculto cuando se renderice la plantilla.

Siempre use <ng-template> cuando sea posible. El <ng-container> es para agrupar elementos del DOM. Por ejemplo, cuando necesita aplicar un *ngIf a muchos elementos <td>, porque no puede usar un <span> alrededor de <td>.

Artículos relacionados