Angular 5 http 删除不起作用

标签 angular

我正在尝试使用 http.delete 删除一篇文章,但 Angular 没有发出请求。我不确定缺少什么。

博客服务.ts:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import 'rxjs/add/operator/map';
const BASE_URL = 'http://localhost:8080';

[...]

deleteArticle(id) {
    this.http.delete(`${BASE_URL}`+'/api/articles/'+ id)
}

编辑博客.component.ts:

import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { ActivatedRoute, Router } from "@angular/router";
import { BlogService } from "../../../services/blog.service";

[...]

onPostDelete() {
    this.blogService.deleteArticle(this.urlParam.id)
}

ngOnInit() {
    this.urlParam = this.activatedRoute.snapshot.params;

    this.blogService.getArticle(this.urlParam.id)
    .subscribe(data =>this.article = data);
}

编辑博客.component.html:

<form [formGroup]="createPostForm" (submit)="onPostSubmit()" autocomplete="off">
[...]
</form>

<button class="btn btn-outline-danger" (click)="onPostDelete()">Delete Post</button>

有人可以告诉我缺少什么吗?谢谢

最佳答案

为了提出请求,您需要按如下方式订阅

onPostDelete() {
   this.blogService.deleteArticle(this.urlParam.id).subscribe((response) => {
     console.log("deleted"));
   });
}

并按如下方式修改您的博客服务,

deleteArticle(id) {
   return this.http.delete(`${BASE_URL}`+'/api/articles/'+ id).map((response: Response) => response.json())
}

关于Angular 5 http 删除不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48193212/

相关文章:

angular - 使用原始和有效标志时出现错误 "Expression has changed after it was checked"

angular - 将参数传递给 Ionic 2 中的组件

Angular Material Stepper - 如何动态创建组件以加载到步骤中

java - 为什么我在尝试从 angular5 向 spring-boot 发送 PUT 请求时收到未经授权的消息?

angular - 使用@angular/flex-layout 作为网格布局

c# - 下载后在客户端获取文件名。 CORS

javascript - 如何使用 Angular2 和 Bootstrap 将工具提示/弹出框添加到表数据中?

angular - q.all for angular2 observables

css - Angular Material - 拒绝应用样式

javascript - angular 2 Material 输入默认焦点移除