我无法更新我的MEAN应用程序的类别。单击我的.html文件中的更新按钮时,出现以下错误消息:无法读取我的service.ts
的未定义属性'_id'这是我的 component.html :
<div class="categories" *ngFor="let category of categories">
<form>
<input type="text" name="title" [(ngModel)]="category.name">
<textarea name="description" [(ngModel)]="category.description"></textarea>
<button (click)="updateCategory(category._id)">Update</button>
</form>
这是我的 component.ts :
updateCategory(_id){
this.appService.updateCategory(this.category);
}
这是我的 service.ts :
updateCategory(category: Category){
let payload = {
"id": category._id,
"name": category.name,
"description": category.description
}
console.log(category._id);
this.http.put(this.apiUrl+"/category/"+ category._id, payload, {responseType: 'text'}).subscribe(response => {});}
数据库连接和API正常工作。只是我的值未定义。我的猜测是它与* ngFor数据异步有关,但我不确定。 如何在service.ts中定义_id,名称和描述?
答案 0 :(得分:1)
此处使用的类别在哪里设置?
updateCategory(_id){
this.appService.updateCategory(this.category); }
您正在将id传递给updateCategory方法,但随后传递了this.category
。
this.category
设置在哪里?
传递类别而不是ID可能更有意义:
<button (click)="updateCategory(category)">Update</button>
然后:
updateCategory(category){
this.appService.updateCategory(category);
}
尝试一下。