Lets say I have the following getter/setter methods
get next() {
console.log(this.people[this._index], this._index);
return this.people[this._index];
}
set next(i: any) {
this._index = (+i) + 1;
this._index = (+i) % this.people.length;
}
and I want to call this in the following way:
<ng-template ngFor let-person="$implicit" [ngForOf]="people" let-i=index let-last=last>
<app-card [cardItem]="people[i]" [nextCard]="next(i)"></app-card>
</ng-template>
PS: Think of this as circular array. Where by I need prev, current, and next items.
However I get the following Error
Angular: Member 'next' in not callable
Why is that? And whats the solution?
Thanks
Edit
Thank you guys for your help and explanation. With your help i managed to make it work:
<app-card [currentCard]="people[i]" [nextCard]="people[i === people.length - 1 ? 0: i + 1]" [prevCard]="i == 0 ? people[people.length - 1] : people[i - 1]"></app-card>
So its pretty much circular array. Lets assume we have the following:
people["James Dan", "Aluan Haddad", "Jota Toledo"]
So few conditions:
- If I stand in the beginning of the array (i.e.
index = 0) - then myprevwill bepeople[people.length - 1]which is the last element in the array. And if my current is on index 1, then my prev will be index 0 and next will be index 2.