首页 > 解决方案 > 根据 id 删除特定对象,但它从 json 中删除所有对象

问题描述

嗨,我正在创建一个简单的员工 crud 应用程序,我可以在其中删除单个员工。但是当我删除任何员工时,它会删除 db.json 中的所有员工并使其为空。

基本上 DELETE 调用会删除所有条目

组件.html

<tr *ngFor="let employee of employees; let i = index">
      <th scope="row">{{ i + 1 }}</th>
      <td>{{employee.employeeId}}</td>
      <td>{{ employee.address }}</td>
        <button type="button" style="margin-left:10px" class="btn btn-danger" (click)="deleteEmployee(employee.id)">Delete</button></td>
    </tr>

组件.ts

deleteEmployee(employeeId:number){
    this.employeesDataService.deleteEmployee(employeeId).subscribe(data => {
      console.log("data",  data);//Getting blank object in risponse
      let newEmployees = this.employees.filter(data => data.id !== employeeId);
      this.employees = newEmployees;
      console.log(this.employees);
    })
  }

服务

deleteEmployee(id:number){
    return this.http.delete(`${this.baseUrl}/${id}`) 
  }

db.json

{
  "employees": [
    {
      "id": 1,
      "employeeId": "HCL1",
      "name": "Mark",
      "age": 24,
      "email": "mark@gmail.com",
      "mobile": "455463242",
      "address": "abx, near abc, India"
      
    },
    {
      "id": 21,
      "employeeId": "HCL21",
      "name": "Jack",
      "age": 21,
      "email": "jack@gmail.com",
      "mobile": "455463242",
      "address": "xyz, near abc, India"
      
    }
    }
  ]
}

标签: javascriptangular

解决方案


您正在删除基于员工,employeeId因此更改data.iddata.employeeId

  let newEmployees = this.employees.filter(data => data.employeeId !== employeeId);

推荐阅读