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>.