テーブルにオブジェクト(タスク)の配列があり、「夜」、「日」の2つのチェックボックスがあります。角度2のチェックボックスフィルタ
次のシナリオが必要です:チェックボックスが選択されている場合は、プロパティが「夜間」のタスクのみがテーブルに残ります。チェックボックスの日付がチェックされている場合、プロパティ "Day"を持つタスクだけがテーブルに残されます(チェックボックス "夜"がチェックされている場合は、 "夜"タスクも残されます)。 3番目のチェックボックス「リセット」はフィルタをリセットします。
パイプなどのソートに別の方法を使用する方がいいでしょうか?
ここにはPlunkrです。
@Component({
selector: 'my-app',
template: `
<input type="checkbox" (click)="getNight()">Night
<input type="checkbox" (click)="getDay()">Day
<input type="checkbox">Uncheck
<br><br>
<table>
<tr *ngFor="let task of tasks">
<td>{{task.chkBoxImageUrl}}</td>
<td>{{task.id}}</td>
<td>{{task.val}}</td>
</tr>
</table>
`,
})
export class App {
tasks: Array<{chkBoxImageUrl: string, id: string, val: string,
checked:boolean}> = [
{chkBoxImageUrl: "http1", id: "item1", val: "Night", checked: false},
{chkBoxImageUrl: "http2", id: "item2", val: "Day", checked: false},
{chkBoxImageUrl: "http3", id: "item3", val: "Night", checked: false},
{chkBoxImageUrl: "http4", id: "item4", val: "Day", checked: false},
{chkBoxImageUrl: "http4", id: "item4", val: "Morning", checked: false},
{chkBoxImageUrl: "http4", id: "item4", val: "Evening", checked: false}
];
getNight() {
console.log(this.tasks[2].val); // Night
// return this.tasks.filter(obj => obj.checked).map(obj => obj.val);
if(this.tasks.val == 'Night') {
return this.tasks.filter(obj => obj.checked).map(obj => obj.val == 'Night');
} else {
console.log('666666');
}
};
getDay() {
return this.tasks.filter(obj => obj.checked).map(obj => obj.val);
};
getCheckedCount(){
return this.getCheckedValues().length;
}
}
アンギュラドキュメントの結果はフィルタリングと発注用のパイプの使用を阻止変更リセットされ。あなたはそれについてもっと読むことができます[ここ](https://angular.io/guide/pipes#appendix-no-filterpipe-or-orderbypipe) – BogdanC