У меня есть одна проблема, когда я работаю с методом удаления HTTP. У меня есть URL, который делает поддельные API. и адрес такой:
private URL = 'http://jsonplaceholder.typicode.com/posts';
Я использую метод get и сохраняю его в переменной, имя которой является данными, и с помощью этого я динамически генерирую одну таблицу, например:
<table class="table table-bordered">
<thead>
<tr>
<th>userId</th>
<th>id</th>
<th>title</th>
<th>Tools</th>
</tr>
<tr>
<th><input type="text" #userId></th>
<th><input type="text" #id></th>
<th><input type="text" #title></th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of data">
<td>{{item.userId}}</td>
<td>{{item.id}}</td>
<td>{{item.title}}</td>
<td><button class="btn btn-warning" (click)="updateItem(item)">Update</button>
<button class="btn btn-danger" (click)="deleteData(item)">Delete</button>
</td>
</tr>
</tbody>
</table>
все мои методы прекрасно работают. Когда я хочу реализовать ошибку в моем файле TS, в методе deleteData у меня есть проблема. код ниже - deleteData в моем файле TS:
deleteData(item) {
this.service.deletePost(item.id)
.subscribe(
response => {
let index = this.data.indexOf(item);
this.data.splice(index, 1);
});
}
Я также использую сервис для вызова моего сервиса удаления так:
deletePost(id){
return this.http.delete(this.url+'/'+id);
}
моя проблема:
как вы знаете, вторым параметром метода подписки является ошибка, и я хочу проверить, что 404 не нашел ошибку в моей таблице. У меня есть код просто так:
deleteData(item) {
this.service.deletePost(345)
.subscribe(
response => {
let index = this.data.indexOf(item);
this.data.splice(index, 1);
},
(error:Response) => {
console.log(error)
if(error.status == 404)
{
alert('404');
}
else{
alert('unexpected is occered!');
console.log(error);
}
});
}
в моем поддельном API у меня есть только 100 элементов, и последний идентификатор равен 100, когда я ставлю недопустимый идентификатор, такой как 345, я должен получить сообщение об отсутствии ошибки и затем обработать ее. но, к сожалению, этого не происходит, и элемент удаляется. что не так с моим кодом?
спасибо заранее