php - 类型 'id' 上不存在属性 'typeof Foods'

标签 php angularjs angular

查看下面的代码,我尝试使用复选框从我的数据表中删除客户端。当我勾选一个复选框时,我在控制台中看到该对象的属性已从数据库中获取。我正在尝试按 id 删除,但终端会引发此错误“类型‘typeof Clients’上不存在属性‘id’”。搜索后我还没有找到任何解决方案。有帮助吗?

//HTTP服务

@Injectable()

 export class HttpService {

  constructor(private http:Http) {

  }



  deleteFood(food) {
    return this.http.delete('http://localhost:9000/api/v1/food/${id}')
      .map((response:Response) => response.json())
  }
}

//表格

 <tbody>
    <tr *ngFor="let food of Foods; let i = index">
      <td><input #{{food.id}} [(ngModel)]="food.selected" type="checkbox" (change)="checkbox(food)"></td>

      <td>{{client.type}}</td>
      <td>{{client.location}}</td>

    </tr>

  </tbody>
</table>

<button type="button" (click)="deleteFood()">Delete</button>

//组件

  export class FoodComponent {

  Foods : Foods[] = []; 



  constructor(private httpService: HttpService, private router: Router){



   selectedFood = Foods;

   deleteFood(){
    this.httpService.deleteFood(this.selectedFood.id)
     .subscribe(data =>{
       console.log(data)
     })
  }

  checkbox(food){
    food.selected = (food.selected) ? false: true;
    this.selectedFood = food;
    console.log(this.selectedFood);
  }
}

//食物.ts

  export class Food{

  constructor(
    public type:string,
    public location: string,

 ){}
}

最佳答案

在您的组件中,您将 Clients 类型分配给您的 activeClient 属性,而不是定义其类型。而且您的 Clients 类没有静态属性 id,这就是编译器在您访问 this.activeClient.id 时报错的原因。

如果你改变:

activeClient = Clients;

到:

activeClient: Clients;

你应该不会再遇到这个问题了。

关于php - 类型 'id' 上不存在属性 'typeof Foods',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41482232/

相关文章:

javascript - 动态ng-click不调用函数

javascript - 单引号和双引号追加

php - 计算同一句话中的数据

java - 在 post 方法中从 Angular UI 发送两个参数并由 java API 处理

php - 当我只有父级的父级文本时如何获取 TreeView 项目的 id

javascript - 面临将数据存储到工厂并在不同 Controller 中使用它的问题

angular - 如何将类注入(inject)服务[Angular 6]

javascript - 使用管道删除 Angular2 中的锐音符号

php - 在 WordPress 管理中创建表

php - 从一种形式将两个连续行放入表中