Aplicación ng-template、ng-container、ng-content de Angular

Aplicación ng-template、ng-container、ng-content de Angular

1, del contenedor

Esta etiqueta no se procesa en DOM; el contenido interno de la etiqueta se muestra de forma predeterminada y
también se pueden usar bloques de código de instrucciones estructurales (ngIf, ngFor...):

<ng-container>
  <p>Hello World !!!</p>
</ng-container>

Resultado de la representación de la página web:

<p _ngcontent-vkg-c0="">Hello World !!!</p>

2, de la plantilla

Elementos de plantilla, los elementos internos son invisibles por defecto. Cómo usar:
Método 1: use el atributo ngIf con un valor de verdadero para mostrar el contenido

<ng-template *ngIf="condition">
  <p>Hello World !!!</p>
</ng-template>

Hay muchas formas de usarlo que no se enumeran aquí. Para una introducción detallada, puede consultar el sitio web oficial

3、de contenido

Cuando el componente principal llama al componente secundario, el contenido del componente principal se proyecta en la posición especificada del componente secundario (la ubicación de ng-content en el componente secundario); similar a la ranura en VUE. Se divide en proyección predeterminada y proyección con nombre.
3.1 Proyección predeterminada: cuando solo hay un contenido ng en el subcomponente

Introducir componentes secundarios en componentes principales:

<app-child-com>
  <p>- parent component content !!! -</p>
</app-child-com>

Subensamblaje:

<p>child component content - begin</p>
<ng-content></ng-content>
<p>child component content - end</p>

efecto de visualización:

child component content - begin
- parent component content !!! -
child component content - end

La posición de la etiqueta p en el componente principal se proyecta en la posición del contenido ng en el componente secundario.

3.1 Proyección con nombre: el componente secundario tiene varios contenidos ng, es necesario especificar el nombre para proyectar el
contenido del componente principal en la ubicación especificada

<app-child-com>
  <header>
    header - parent component content !!! -
  </header>
  <div id="demo">
    id selector - parent component content !!! -
  </div>
  <div name="demo">
    name - parent component content !!! -
  </div>
</app-child-com>

contenido de subcomponente

<p>child component content</p>
<ng-content select="header"></ng-content>
<p>child component content</p>
<ng-content select="#demo"></ng-content>
<p>child component content</p>
<ng-content select="[name=demo]"></ng-content>

Use el atributo de selección, admita selectores de CSS y proyecte la posición correspondiente

Guess you like

Origin blog.csdn.net/zhengcaocao/article/details/113887731