невозможно создать и удалить вовремя.Работает только при обновлении - PullRequest
0 голосов
/ 10 октября 2018

Я строю грубую операцию, и я могу сделать операцию.Но он добавляется и удаляется только при обновлении.В противном случае это дает мне ошибку. Я что-то здесь упускаю?И почему происходит операция захвата при создании и удалении, а не при обновлении?

service.ts

 //create service

 sendRole(data){
 console.log(data);
 let headers = new Headers({ 'Content-Type': 'application/json' 
 }).set('Authorization', 'Token ' + 
 localStorage.getItem('usertoken'));

 var options =  {
  headers: headers
 };
 return this.httpClient.post('api/auth/role/', data, this.options)
 .map((res:Response)=> res.json())
 .catch(this.handleErrorObservable); 
 }

//delete service

 del_role(id:number){
 var headers = new HttpHeaders().set('Authorization', 'Token ' + 
 localStorage.getItem('usertoken'));
 var options =  {
 headers: headers
 };

 return this.httpClient.delete('api/auth/role/' + id, options)
 .map((response: Response) => < any > response.json())
 .catch(this.handleErrorObservable);  
 }

component.ts

//add operation

addRole(role){
console.log(role.value);
this.Authentication.sendRole({'name':role})
.subscribe(role=> this.persons =role)
}

//delete operation

deleterole(id){
this.Authentication.del_role(id).subscribe(res =>{
console.log('deleted successfully');
},
err =>{
console.log('error occured');
})
}

// ошибка создания error when creating

// ошибка удаления error while deleting

1 Ответ

0 голосов
/ 10 октября 2018

Попробуйте, это будет работать для вас.для httpClient нам не нужно добавлять .map, по умолчанию httpclient будет возвращать результат в формате json, если мы хотим получить полный ответ на запрос httpclient, в этом случае нам нужно задать параметр ==> наблюдаем: 'response'.

//create service

 sendRole(data){
 console.log(data);
 let headers = new Headers({ 'Content-Type': 'application/json' 
 }).set('Authorization', 'Token ' + 
 localStorage.getItem('usertoken'));


 return this.httpClient.post('api/auth/role/', data, {
        headers: headers ,
        observe: 'response'
    })
 }

//delete service

 del_role(id:number){
 var headers = new HttpHeaders().set('Authorization', 'Token ' + 
 localStorage.getItem('usertoken'));

 return this.httpClient.delete('api/auth/role/' + id, {
        headers: headers ,
        observe: 'response'
    })
};

component.ts

 //add operation

    addRole(role){
    console.log(role.value);
    this.Authentication.sendRole({'name':role})
    .subscribe(result=> this.persons =result.body)
    }

    //delete operation

    deleterole(id){
    this.Authentication.del_role(id).subscribe(res =>{
    if(res..status == 200){
    console.log('deleted successfully');
}
    },
    )
    }
...