Angularjs 食品.过滤器不是一个函数-角度2
我正试图通过选择复选框进行多次删除,但在我尝试进行多次删除时,控制台中出现错误Foods.filter不是一个函数错误。当我在html表中引入管道时,出现了错误。但是如果没有管道,它可以正常工作。可能是筛选器没有接收阵列吗 htmlAngularjs 食品.过滤器不是一个函数-角度2,angularjs,angular,Angularjs,Angular,我正试图通过选择复选框进行多次删除,但在我尝试进行多次删除时,控制台中出现错误Foods.filter不是一个函数错误。当我在html表中引入管道时,出现了错误。但是如果没有管道,它可以正常工作。可能是筛选器没有接收阵列吗 html <tbody> <tr *ngFor="let key of Foods | keys; let i = index" > <td>{{i + 1}}</td>
<tbody>
<tr *ngFor="let key of Foods | keys; let i = index" >
<td>{{i + 1}}</td>
<td><input #{{Foods[key].id}} [(ngModel)]="Foods[key].selected" type="checkbox"></td>
</tbody>
食物似乎是一个对象而不是数组,因此没有实现
过滤器方法
delete() {
Object.keys(this.Foods) //get an array of the object keys
.filter(key => this.Foods[key].selected) //filter selected foods
.forEach(key=>{ //for each food, delete
let id= this.Foods[key].id;
this.httpService.deleteFood(id);
});
}
请注意,一个接一个地删除几个食物可能需要很长时间,也许您应该考虑在服务器上使用批删除方法。foods
是一个对象,而不是数组。我猜keys
管道返回Object.keys(输入)
。这意味着keys不返回对象?返回包含对象键的数组。delete()函数似乎不会触发任何内容。我控制台记录了数据,但没有显示控制台记录了什么数据?在哪里?当我控制台记录id时,我会得到所选食物的id,但这行是this.httpService.deleteFood(id);似乎无法运行如果您可以在之前记录id,则可以。所选食物不删除
delete() {
Object.keys(this.Foods) //get an array of the object keys
.filter(key => this.Foods[key].selected) //filter selected foods
.forEach(key=>{ //for each food, delete
let id= this.Foods[key].id;
this.httpService.deleteFood(id);
});
}