如何在Angular2中声明仅在模板中使用的变量

如何在Angular2中声明仅在模板中使用的变量,angular,Angular,我有下面的代码 <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>

我有下面的代码

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

{{skill}}
然后,如果没有技能,我想隐藏该卡,因此我将其更改为

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

{{skill}}
它工作得很好,但问题是value将拆分管道两次,那么如何定义变量并使用管道一次呢

我在下面试过了,但没有成功

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

{{skill}}

不能使用模板变量分配自定义值

模板变量只能用于直接或按名称引用元素和组件(
exportAs
),或用于从结构指令上下文(如
*ngFor
中的
let idx=index
)分配值

对于您的用例,改为在components类中创建一个字段并绑定到此类