我最近在我的homepage.html
使用中添加了一个简单的删除按钮:
<button style="border: 1.5px solid rgba(255, 0, 0, 0.226); background-
color: whitesmoke; border-radius: 23px; font-size: 15px; padding: 5px;
margin: 5px;"
(click)="removeCat(cat._id)">Delete</button>
我收到控制台错误:
HomePageComponent.html:96 ERROR 错误:尝试比较“[object Object]”时出错。只允许使用数组和可迭代对象
有人告诉我这是在我的 html 的第 96 行,就是这一行
<tr *ngFor="let cat of cats">
<td>{{cat.breedname}}</td>
<td>{{cat.age}}</td>
<td>{{cat.gender}}</td>
<td>{{cat.comfortablecatdog}}</td>
<td>{{cat.comfortablekids}}</td>
<td>{{cat.health}}</td>
<button
style="border: 1.5px solid rgba(0, 164, 240, 0.267); background-color: whitesmoke; border-radius: 23px; font-size: 15px; padding: 5px; margin: 5px;"
[routerLink]="['/cats', cat._id]">Details</button>
<button
style="border: 1.5px solid rgba(255, 217, 0, 0.267); background-color: whitesmoke; border-radius: 23px; font-size: 15px; padding: 5px; margin: 5px;"
[routerLink]="['/cats', cat._id, 'edit']">Edit</button>
<button style="border: 1.5px solid rgba(255, 0, 0, 0.226); background-color: whitesmoke; border-radius: 23px; font-size: 15px; padding: 5px; margin: 5px;"
(click)="removeCat(cat._id)">Delete</button>
</tr>
这是我的homepage.ts
:
removeCat(_id) {
var tempObeservable = this._httpService.removeCatById(_id);
tempObeservable.subscribe((data: any) => {
console.log('got a response from delete');
var tempObeservable = this._httpService.getAllPets();
tempObeservable.subscribe((data: any) => {
console.log('got a response from ngoninit', data);
this.cats = data;
})
})
}
这是我的 http.service.ts
removeCatById(_id){
console.log('deleteDog', _id);
return this._http.delete(`/api/pets/${_id}/deletecat`, _id);
}
这是我的 app-routing.module.ts
{path: 'cats/:id/deletecat', component: HomePageComponent},
这是我的 routers.js
app.delete('/api/pets/:id/deletecat', pets.deleteCat);
这是我的 pets.js 控制器
deleteCat: (req, res) => {
Cat.deleteOne({ _id: req.params.id }, function (err) {
if (err) {
console.log("hit delete but got errors", err);
res.json(err);
} else {
res.json({ message: 'succesfully deleted' });
}
})
}
我的其他按钮工作正常,“编辑”和“详细信息”,但是这些按钮使用的是 [routerLink] 而不是我的(单击)功能。我在网上找到的答案似乎都没有帮助。如果我没有提供足够的代码,我很乐意提供更多代码。
谢谢你。
[编辑] 我应该提到该按钮仍将删除正确的对象,但仅在我刷新页面后显示。