2016-12-11 3 views
1

I unten Code habenWie nur mit in Vorlage in Angular2 eine Variable deklarieren

<ion-card > 
    <ion-card-content> 
     <ion-chip *ngFor="let skill of contact.skills | split"> 
     <ion-label>{{skill}}</ion-label> 
     </ion-chip> 
    </ion-card-content> 
    </ion-card> 

dann will ich die Karte verstecken, wenn es keine Fähigkeiten ist, so habe ich es zu

<ion-card [hidden]="(contact.skills | split).length == 0"> 
    <ion-card-content> 
     <ion-chip *ngFor="let skill of contact.skills | split"> 
     <ion-label>{{skill}}</ion-label> 
     </ion-chip> 
    </ion-card-content> 
    </ion-card> 

und es funktioniert gut, aber das Problem ist, wird Wert Rohr zweimal spalten, dann wie kann ich eine Variable definieren und Pipe einmal verwenden?

Ich habe versucht, unten aber nicht funktioniert

<ion-card #skills="contact.skills | split" [hidden]="skills.length == 0"> 
    <ion-card-content> 
     <ion-chip *ngFor="let skill of skills"> 
     <ion-label>{{skill}}</ion-label> 
     </ion-chip> 
    </ion-card-content> 
    </ion-card> 

Antwort

1

Sie können keine Template-Variablen verwenden, um benutzerdefinierte Werte zuweisen.

Template-Variablen können nur auf die Elemente und Komponenten, die direkt oder nach Name (exportAs) oder zuweisen Werte von einem strukturellen Richtlinien Kontext wie let idx=index in *ngFor

Für Ihren Anwendungsfall erstellen ein Feld in den Komponenten beziehen verwendet werden Klasse stattdessen und binden Sie an diese Klasse.

Verwandte Themen