Немного неясно, что вы хотите. Но вот пример из нескольких сценариев :
- Установка флажка фильтрует список
- При щелчке элемента обновляется другой элемент со значением
Сначала просто фиктивный класс:
export class RowData {
Name:string;
Id:number;
Row:number;
Column: number;
Visible: boolean = true;
}
С фиктивными данными:
items: RowData[] = [
{
Name: "One",
Id:1,
Row:1,
Column:1,
Visible:true,
},
{
Name: "Two",
Id:2,
Row:2,
Column:2,
Visible:true,
},
{
Name: "Another Row",
Id:5,
Row:3,
Column:3,
Visible:true,
},
{
Name: "Yep",
Id:4,
Row:4,
Column:4,
Visible:true,
},
]
}
Для представления у меня есть двухстороннее связывание с парой событий:
<hello name="{{ name }}"></hello>
<p>
Start editing to see some magic happen :)
</p>
<div>
<input type="checkbox" name="Toggle Row" (click)="toggleRows()" /> Toggle Rows <br>
</div>
<div *ngFor="let item of items">
<div (click)="showMe(item)" *ngIf=item.Visible>{{item.Name}}</div>
</div>
<label *ngIf="clicked">{{clicked.Name}}</label>
А вот события и их зависимые свойства:
toggleRow2Col2: boolean = true;
clicked: RowData;
showMe(elem){
this.clicked = elem;
}
toggleRows(){
this.toggleRow2Col2 = !this.toggleRow2Col2;
if (!this.toggleRow2Col2){
this.items.forEach(function(item){
if (item.Row != 2 && item.Column != 2){
item.Visible = false;
}
})
}
else {
this.items.forEach(function(item) {
item.Visible = true;
})
}
}
Идея в том, что да, мы можем фильтровать и изменять DOM, только по атрибутам и привязке, а не от JS / JQuery.