谁能告诉我我试图拼接复选框的值。但不起作用。
我的component.ts
articleCategories(e, cat_name) {
if (e.checked) {
// this.FiletredCategories.push(cat_name);
this.articleDetails.forEach((card) => {
card.article.forEach((obj) => {
obj.content.forEach((obj1) => {
let v = obj1.content;
if (v.toLowerCase() === cat_name.toLowerCase()) {
this.isShow = true;
this.FiletredCategories=card;
}
else{
let index = this.FiletredCategories.indexOf(cat_name);
this.FiletredCategories.splice(index, 1);
}
});
});
});
}
}
在我的ts文件中,我检查了值是否正在发送到FiletredCategories以进行过滤。如果我使用this.FiletredCategories.push(cat_name);则拼接工作正常,但复选框过滤无效
我的component.html
<div class="panel panel-default qk_li">
<mat-list class="mat-list" role="list">
<mat-list-item style="height: 25px;font-size: 14px;" *ngFor="let speciality of allCategories"
class="form-check-input" role="listitem">
<mat-checkbox [(ngModel)]="speciality.checked" (change)="articleCategories($event, speciality.cat_name)">{{speciality.cat_name}}</mat-checkbox>
</mat-list-item>
</mat-list>
</div>
答案 0 :(得分:0)
您可以寻找.splice()
而不是.filter()
的集合,然后重新分配:
this.FiletredCategories = this.FiletredCategories.filter(cat => cat.cat_name !== cat_name);
如果您共享数据结构,那么正确地回答它会很好。它只是基于您发布的代码。