Есть небольшой пример с двумя массивами:
https://plnkr.co/edit/GN8YNJqBkTRhnGFKkDfs?p=preview
Можно ли такое реализовать через @Input следующим образом: все то же самое, но оба массива передаются в дочерний компонент?
Я попытался, вывел массив в дочернем компоненте, но все элементы красные. Клик не отрабатывается.
дочерний компонент:
public handleEvent(isSelected:any){
this.user = isSelected;
}
public isSelected(user) {
console.log(this.selected);
return this.selected.indexOf(user) !== -1;
}
@Output() event: EventEmitter<any>=new EventEmitter();
clickOnUser(user) {
if (this.selected.indexOf(this.user) !== -1) {
this.selected.splice(this.selected.indexOf(this.user), 1);
} else {
this.selected.push(user);
}
}
Разметка:
<code lang="html">
p([ngClass]="{ 'selected': 'isSelected(user)' }" (event)="clickOnUser()") {{user.Name}}
</code>