angularjs http post显示仍然错误-工作示例needet

5sxhfpxr  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(263)

我目前正在观看一个关于httpclient post的Angular 教程。不幸的是,教程已经过时了。因此,我通过谷歌示例/解决方案搜索了数小时。但即使是我通过谷歌找到的东西。不工作。o、 o我尝试了以下代码:https://stackblitz.com/edit/angular-ivy-o8b7ri?file=src%2fapp%2fapp.component.ts
在VisualStudio中,我得到一个错误“元素隐式地具有'any'类型,因为'id'类型的表达式不能用于索引类型'{title:string;}'。”所以我把第39行改为“let post:any={id:'aa'}改变。
现在,编译器向我显示“node_modules/rxjs/internal/types.d.ts:73:5 73 complete:()=>void
怎么了?

wwwo4jvm

wwwo4jvm1#

有时候,提出正确的问题会有所帮助:d
这是代码。以防有人在谷歌上也找不到它。
html文件:

<input 
    (keyup.enter)="createPost(title)" #title
    type="text" class="form-control">
<ul class="list-group">
    <li 
    *ngFor="let post of posts"
    class="list-group-item">
    {{ post.title }}
    </li>
</ul>

ts文件:

import { Component, OnInit, Input } from '@angular/core';
import { HttpClient } from "@angular/common/http";

@Component({
  selector: 'post',
  templateUrl: './post.component.html',
  styleUrls: ['./post.component.css']
})
export class PostComponent  {
  posts: any;
  private url=`http://jsonplaceholder.typicode.com/posts`;

  constructor(private httpClient: HttpClient) { 
    httpClient.get(this.url)
      .subscribe(response => {
        this.posts = response;
      }); 
  }

  createPost(input: HTMLInputElement) {
    let post: any = { title: input.value };
    this.httpClient.post(this.url, JSON.stringify(post))
      .subscribe((response:any) => {
        post['id'] = response.id;
        this.posts.splice(0, 0, post);
        console.log(post['id']);
    });
  }

}

相关问题