2016-08-19 1 views
0

MemberAprayArray - массив с некоторыми значениями. Мне нужно проверить, присутствует ли в массиве event.listDetails.accessId или нет. Если accessId не существует в массиве, то событие-карта не должна печататьОшибка получения с использованием ngFor и ngIf в Angulsrjs2 и Ionic 2

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

ошибка:

EXCEPTION: Error: Uncaught (in promise): Template parse errors: Property binding ngIfIn not used by any directive on an embedded template. Make sure that the property name is spelled correctly and all directives are listed in the "directives" section. ("e keys and i have to check if it is present in the array or not ..please suggest-->--> [ERROR ->] "): [email protected]:12

ответ

0

Вместо того, чтобы в том числе логика на ваш взгляд, вы могли бы просто создать свойство в компоненте, как это:

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), чтобы узнать, содержит ли массив это значение.