2017-10-12 2 views
2

Je suis un débutant dans la pile de démarrage Angular 2/spring, alors s'il vous plaît supportez-moi un peu. J'ai créé une méthode http.delete pour supprimer une ligne particulière sélectionnée par l'utilisateur qui invite une alerte à vérifier la suppression, ma demande fonctionne correctement sur Postman car je peux supprimer une ligne sélectionnée en fonction des paramètres donnés complètement de la base de données, mais pas dans mon application frontend, donc mon Api fonctionne bien comme prévu.J'ai même vérifié pour Abonnez-vous depuis Observable sont paresseux, j'ai fait plusieurs combinaisons de code, mais voici le code angulaire réelle: IncidentService.ts:http.delete fonctionne bien sur Postman mais pas sur angulaire 4/ionique 3 app

supprimerIncident(incident) 
{ 
    let cHeaders = new Headers({ 'Content-Type': 'application/json' }); 
    let cParams = new URLSearchParams(); 
    cParams.set('rfcnumber',incident); 
    let options = new RequestOptions({ headers: cHeaders, params: cParams }) 
    return this.http.delete(Api+'delete',options) 

    } 

Et voici le code du fichier incident.ts appelant ce service.

deleter(incident:string) 
    { 
    let alert = this.alertCtrl.create({ 
     title: 'Confirmation', 
     message: 'Voulez-vous supprimer ce ticket ?', 
     buttons: [{ 
      text: "Ok", 
      handler:() => { 

       this.incserv.supprimerIncident(incident). 
      map(res=>res.status) 
       .subscribe(res=> 
    { 
     for(let i = 0; i < this.incidents.length; i++) { 

      if(this.incidents[i] == incident){ 
       this.incidents.splice(i, 1); 

       } 
    } 
    //console.log(this.incidents=incident); 

    console.log(res) 
    }, 
    err=>{ 
    console.log(err); 

    return Observable.throw(err.status); 
    }); 
      } 
     }, { 
      text: "Annuler", 
      role: 'cancel' 
     }] 
     }) 
     alert.present(); 


    } 

la méthode de raccordement fonctionne et supprime la ligne prévue dans la liste, mais quand je lance à nouveau l'application, la ligne est là-bas, il est toujours dans la base de données, peut être supprimé directement à partir Postman, mais pas le app. J'apprécie votre aide et votre temps, merci beaucoup.

Edit: voici la capture d'écran pour le réseau demande xhr request result

+0

Vous pouvez suivre ce modèle avec votre application Ionic. https://stackoverflow.com/a/46699558/1077309 – Sampath

+0

Avez-vous vérifié que votre service reçoit la demande de suppression? – LHCHIN

+0

Je l'ai vérifié, il ne le fait pas, il renvoie [objet, objet] je vais mettre à jour le poste pour inclure les écrans du Xhr – Hitoshura

Répondre

0

Je l'ai résolu, ce sont les params de la recherche, j'ai changé le code de

supprimerIncident(incident) 
{ 
    let cHeaders = new Headers({ 'Content-Type': 'application/json' }); 
    let cParams = new URLSearchParams(); 
    cParams.set('rfcnumber',incident); 
    let options = new RequestOptions({ headers: cHeaders, params: cParams }) 
    return this.http.delete(Api+'delete',options) 

    } 

à:

supprimerIncident(incident) 
{ 
    let cHeaders = new Headers({ 'Content-Type': 'application/json' }); 
    let cParams = new URLSearchParams(); 
    cParams.set('rfcnumber',incident.rfcnumber); 
    let options = new RequestOptions({ headers: cHeaders, params: cParams }) 
    return this.http.delete(Api+'delete',options) 

    } 

"incident" était ce que renvoyant l '[object Object], j'ai mis un JSON.stringify pour vérifier son contenu, il contenait toute la requête, où je veux ed juste le rfcnumber comme un paramètre pour la recherche de la suppression.

Espérons que cela aide quelqu'un ayant un problème similaire