Вы изменяете значение loadIcon
в своем компоненте. К этому свойству обращаются во всех ваших строках. Таким образом, все они будут иметь одно и то же состояние.
Вместо этого вы хотите проверить свойство, ограниченное областью data
. Может быть, назначить data.isLoading
и проверить это. Но все эти детали зависят от вас и могут зависеть от более широкой системы, в которой вы работаете.
Ниже приведен базовый c пример
компонент. html
<ul>
<li *ngFor='let details of video' [class.isLoading]='details.isLoading' (click)='loadVideo(details)' >{{details.name}}</li>
</ul>
component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
video = [{
name: 'Video1',
isLoading: false
}, {
name: 'Video2',
isLoading: false
}];
public loadVideo( details ): void {
details.isLoading = (details.isLoading)?false:true;
}
}
компонент. css
li.isLoading{
background: lightblue;
}
StackBlitz: https://stackblitz.com/edit/angular-zmjgcs