Búsqueda de sitios web

javascript - Angular pasar nombre de etiqueta


<div class="content">
  <md-tab-group>
    <md-tab label="label1" (click)="passSourceOfDocuments()">
      <details *ngFor="let package of documentPackages">
        <summary>{{package.documentPackageGuid}}</summary>
        <ul>
          <details *ngFor="let doc of package.Documents">
            <summary>{{doc.documentGuid}}</summary>
              ..........
          </details>
        </ul>
      </details>
    </md-tab>
    <md-tab label="label2" (click)="passSourceOfDocuments()">
      <details *ngFor="let doc of emaildocuments">
             ......................
      </details>
    </md-tab>
  </md-tab-group>
</div>

¿Podría pasar el nombre de la etiqueta en la función "passSourceOfDocuments()"? ¿Es posible? ¿Puedo enlazar esta etiqueta con una propiedad en el archivo .ts?

Respuesta #1

Si puedes agregar una 'variable de referencia de plantilla' a cada uno de tus elementos <md-tab>, entonces podrías referirte a ellos en la función así,

<md-tab #tab1 label="label1" (click)="passSourceOfDocuments(tab1.textLabel)">
<md-tab #tab2 label="label2" (click)="passSourceOfDocuments(tab2.textLabel)">

O si tienes un arreglo de etiquetas declarado como una propiedad en el archivo del componente, entonces puedes agregarlas por índice o algún medio similar,

componente

labelsArr = ['label1', 'label2', 'label3'];

plantilla

<md-tab [label]="labelsArr[0]" (click)="passSourceOfDocuments(labelsArr[0])">
<md-tab [label]="labelsArr[1]" (click)="passSourceOfDocuments(labelsArr[1])">