使用Angulsrjs2和Ionic 2中的ngFor和ngIf接收错误

时间:2016-08-19 16:10:14

标签: javascript angularjs arrays ionic-framework ionic2

JoinedArray是一个包含一些值的数组。 我必须检查数组中是否存在event.listDetails.accessId。如果数组中没有accessId,那么事件卡不应该打印

<ion-list *ngSwitchCase="'joined'">
            <event-card *ngIf="event.listDetails.accessId in joinedArray " ></event-card>
    </ion-list>

错误是:

  

EXCEPTION:错误:未捕获(在承诺中):模板解析错误:   属性绑定ngIfIn未被嵌入式上的任何指令使用   模板。确保属性名称拼写正确并且   所有指令都列在&#34;指令&#34;部分。 (&#34; e键和我   必须检查它是否存在于数组中..请不要   建议 - &GT; - &GT;               [错误 - &gt;]                &#34;):EventListComponent @ 31:12

1 个答案:

答案 0 :(得分:0)

您可以在组件中创建一个属性,而不是在视图中包含 logic

public showCard: bool;

// In the constructor or somewhere else
//...
this.showCard = joinedArray.indexOf(event.listDetails.accessId) > -1;
// ...

然后在视图中:

<ion-list *ngSwitchCase="'joined'">
  <event-card *ngIf="showCard"></event-card>
</ion-list>

这样我们可以保持简单,视图只是显示或隐藏事物,组件代码决定是否应该显示。

另请注意,我已使用indexOf()Reference)方法查看数组是否包含该值。