无法将数据放入MEAN应用程序

时间:2018-11-29 16:02:25

标签: angular undefined mean put

我无法更新我的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,名称和描述?

1 个答案:

答案 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);    
  }

尝试一下。