2016-10-31 2 views
1
<div class="kalender"> 
    <table *ngIf="datoer"> 
     <tr> 
      <td *ngFor="let cell of ukeEn()" 
       [attr.title]="cell.id">{{cell.text}}</td> 
       </div> 
     </tr> 
    </table> 
</div> 

würde Ich mag, wenn attr.title prüfen (oder cell.id) == any of the element's .dato attribute (ein Element, ein Element vom Typ Cell mit dem Attribute aufgerufen ist, dato) in ein Array namens datoer, das in meiner Komponente definiert ist. Also muss ich die attr.title gegen jeden Wert im datoer Array überprüfen. Dann möchte ich ein Element (z. B. div oder p) in der td hinzufügen, wenn diese Bedingung true ist.Angular 2: Wenn attr.title in HTML == Array in Komponente

Ist das möglich? Wenn Sie mehr Code Samle benötigen, um mein Problem zu verstehen, fragen Sie einfach.

+0

Warum nicht setzen Sie die 'title' selbst zuschreiben? Warum willst du es mit 'cell.id' vergleichen? –

Antwort

3
<div class="kalender"> 
    <table *ngIf="datoer"> 
     <tr> 
      <td *ngFor="let cell of ukeEn()" [attr.title]="cell.id"> 
       <div *ngIf="datoerContains(cell)">{{cell.text}}</div> 
      </td>    
     </tr> 
    </table> 
</div> 

In Ihrer Komponente formulieren:

datoerContains(cell:any):boolean { 
    for(let i = 0; i < this.datoer.length; i++) { 
     if (this.datoer[i].dato == cell.dato) { 
     return true; 
     } 
    } 
    return false; 
} 
+0

Ich habe vergessen hinzuzufügen, dass die Elemente in 'datator' nicht im Format cell.id, sondern Cell (ein definierter Typ mit Attribut-ID) ist. Also muss ich das ID-Attribut des Array-Elements überprüfen. Wie schreibe ich dann das Bauteil? – MariusJ

+1

@MariusJ Ich habe meine Antwort aktualisiert. Sie können datoerContains (Zelle: Zelle) verwenden. Mit'any' wird auch funktionieren. –

+0

Ausgezeichnet! Funktioniert perfekt. Danke vielmals! – MariusJ

Verwandte Themen