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

时间:2016-12-11 20:38:22

标签: 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 [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>

并且它工作正常,但问题是值将拆分管道两次,那么如何定义变量并使用管道一次?

我在下面试过但没有工作

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

1 个答案:

答案 0 :(得分:1)

您无法使用模板变量来分配自定义值。

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

对于您的用例,请在components类中创建一个字段,然后绑定到此类。