Отключение элемента в Array в зависимости от условия в angular 5 - PullRequest
0 голосов
/ 27 мая 2018

У меня есть список участников:

<div class="heroWrapper">
    <div class="image hero" *ngFor="let participant of participants; index as i" [class]="i === selectedParticipant ? 'selected hero' : 'image hero'">
        <img [src]="participant.imageUrl" (click)="toggleMoves = !toggleMoves"/>
        <span [ngStyle]="{'color': getColor(participant)}" class="HP">{{participant.hitPoints}}</span>
        <span class="namePlayer" *ngIf="isHero(participant)">{{getPlayerName(participant)}}</span>
        <span class="nameHero">{{participant.name}}</span>
    </div>
</div>

И следующая и предыдущая кнопка:

next() {
    if (this.selectedParticipant != this.participants.length - 1) {
        ++this.selectedParticipant;
    } else {
        this.selectedParticipant = 0;
    }

    this.toggleMove();
}

previous() {
    if (this.selectedParticipant != 0) {
        --this.selectedParticipant;
    } else {
        this.selectedParticipant = this.participants.length - 1;
    }

    this.toggleMove();
}

selectedParticipant - это индекс элемента в массиве.Теперь, когда HP участников равен 0, я бы хотел, чтобы они были отключены, что означает, что они будут пропущены следующим и предыдущим способом.И когда они отключены, я бы хотел, чтобы они были серымикоманда.Но по какой-то причине это установило для участников hitPoints значение 0?

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Здесь вместо сравнения произошло присвоение.

Сделайте практикой запись констант на левой стороне, чтобы вместо сравнения не происходило назначение.

например.

if (0 == this.participants[selectedParticipant].hitPoints) { 
}



if (0 = this.participants[selectedParticipant].hitPoints) {
} // it would break the execution and give an error because constants cant be assigned a value and so you find out the error easily.
0 голосов
/ 27 мая 2018

В вашем операторе if должно быть == вместо одного = , поэтому значение hp участников составляет 0

== является оператором сравнения

= является оператором присваивания

next() {
    if(this.participants[selectedParticipant].hitPoints == 0) {
       ++this.selectedParticipant;
       if (this.selectedParticipant > this.participants.length - 1) {
           this.selectedParticipant = 0;
       }

       this.toggleMove();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...