项目已删除,但是当您离开页面并返回时,即使该项目不在邮递员中,也会再次放置该项目

时间:2018-07-23 13:16:47

标签: angular

我正在开发一个有角度的php应用程序,并全部在localhost上运行。在前端,我有一个检索信息并显示的功能。列表中的每一行都有一个名为delete的按钮,可以删除此项目,当我单击delete时,我将获得该项目的ID,并将删除请求发送到我的服务器。我与邮递员一起跟踪此操作,可以看到它确实删除了所有文件,但是即使在尝试使用get方法检索列表时从列表中将其删除,该项目仍然存在。删除的项目返回,但在邮递员中不返回。

Category.service.ts

  get(page, descricao) {
    page = 'all';
    return this.http.get(Auth.url + this.nameClass + `?page=${page}&desc=${descricao}`, { headers: { 'token': Auth.token } });
  }

  delete(id) {
    console.log(Auth.url + this.nameClass + "/" + id);
    this.http
      .delete(Auth.url + this.nameClass + "/" + id, { headers: { 'token': Auth.token } })
      .subscribe(dados => alert('Ok'), (error: any) => alert('erro'));
  }

当我使用函数删除警报(“确定”)时,由于我的服务器已完美删除,因此返回true

CategoryList.Component.ts

items: any;
ngOnInit() {
    this.getList();
}

 excluir(desc, id) {

    if (confirm("Do you want to delete the category " + desc + " ?")) {
      let index = this.getIndex(id);
      if (index == -1)
        alert('Error');
      else {
        let result = this.categoriaService.delete(id);
        this.items.splice(index, 1);
      }
    }
  }

  getIndex(id) {
    for (let i = 0; i < this.items.length; i++)
      if (this.items[i].id == id)
        return i;
    return -1;
  }

  getList(page: number = 1) {

     this.categoriaService.get(page, this.pesquisarValue)
.subscribe(dados => this.exibeLista(dados), (error: any) => console.log(error));
      }



  exibeLista(dados) {

    this.items = null;

    if (dados.result.count == 0) // Quantidade de itens retornados da consulta
      this.pages = null;
    else {
      if (dados.result.paginas == 0) // Quantidade de paginas
        this.pages = null;
      else {
        this.totalPages = dados.result.paginas;
        this.loadPages();
      }
      this.items = dados.result.item;
    }

我使用this.items.splice(index,1)函数;到目前为止,已经从我的项目数组中删除了已删除的项目。当我离开此页面并返回时,即使该项目不在邮递员中,该项目也仍然存在。 我在allow-control-allow-origin的镶边中使用扩展名,这会引起任何问题吗?这是我的列表在某些缓存中吗?如何删除已删除的数据

1 个答案:

答案 0 :(得分:0)

除服务外,您的代码看起来不错。请按以下方式更改服务代码

get(page, descricao) {
    page = 'all';
    return this.http.get(Auth.url + this.nameClass + `?page=${page}&desc=${descricao}`, { headers: { 'token': Auth.token } })
.map(response => return response ) // or try  `response.json()` instead of `response` 
.catch(error => {
     return Observable.throw(error);
   });;
  }