angular利用http实现get和post哀求

打印 上一主题 下一主题

主题 904|帖子 904|积分 2712

阐明:
angular利用http实现get和post哀求
提示:在运行本项现在,请先导入路由router,可以参考我上一篇文章。
结果图:

step1:E:\projectgood\ajsix\untitled4\package.json
“@angular/cdk”: “^18.2.10”,
“@angular/material”: “^18.2.10”,
step2:E:\projectgood\ajsix\untitled4\src\app\model\Service.ts
  1. import { Injectable } from '@angular/core';
  2. import { HttpClient } from '@angular/common/http';
  3. import { Observable } from 'rxjs';
  4. @Injectable()
  5. export class Service {
  6.   url = 'https://demo.restheart.org/messages';
  7.   constructor(private http: HttpClient) {
  8.   }
  9.   public get(page: number = 1): Observable<Array<any>> {
  10.     return this.http.get<Array<any>>(`${this.url}?pagesize=5&page=${page}`);
  11.   }
  12.   public size(): Observable<any> {
  13.     return this.http.get(`${this.url}/_size`);
  14.   }
  15.   public delete(id: string): Observable<any> {
  16.     return this.http.delete(`${this.url}/${id}`);
  17.   }
  18.   public getSingleCharacterz(id:string):Observable<any>{
  19.     return this.http.get(`http://localhost:5000/api/water`)
  20.   }
  21.   public postSingleCharacterz(data: any): Observable<any> {
  22.     const water =  {
  23.       watername: '韩红牌纯净水',
  24.       watericon: 'http://e.hiphotos.baidu.com/image/pic/item/a1ec08fa513d2697e542494057fbb2fb4316d81e.jpg',
  25.       waterstyle: '最中幻想',
  26.       watersize: '50L',
  27.       waterprice: '32',
  28.       shopaccount: '772024102801',
  29.       shopname: '大润发超市'
  30.     }
  31.     return this.http.post(`http://localhost:5000/api/wateradd`, water);
  32.   }
  33.   public post(data: any): Observable<any> {
  34.     const _data = {
  35.       message: data.message,
  36.       from: data.from
  37.     };
  38.     return this.http.post(this.url, _data);
  39.   }
  40. }
复制代码
step3:E:\projectgood\ajsix\untitled4\src\app\user\user.component.html
  1. <p>user works!</p>
  2. <button mat-flat-button color="primary" (click)="onAcceptClick('element.operate')">查询</button>
  3. <button mat-flat-button color="primary" (click)="onAddClick('element.operate')">新增</button>
复制代码
step4:E:\projectgood\ajsix\untitled4\src\app\user\user.component.ts
  1. import { Component, OnInit } from '@angular/core';
  2. import { Observable, tap } from 'rxjs';
  3. // import { Service } from './service';
  4. import { FormsModule } from '@angular/forms';
  5. import { AsyncPipe, JsonPipe, DatePipe } from '@angular/common';
  6. import { HttpClient, HttpClientModule, HttpHandler } from '@angular/common/http';
  7. import {Service} from '../model/Service';
  8. import {MatButtonModule} from '@angular/material/button';
  9. @Component({
  10.   selector: 'app-user',
  11.   standalone: true,
  12.   imports: [FormsModule,AsyncPipe,JsonPipe,DatePipe,HttpClientModule,MatButtonModule],
  13.   templateUrl: './user.component.html',
  14.   providers:[Service],
  15.   styleUrl: './user.component.css'
  16. })
  17. export class UserComponent implements OnInit  {
  18.   constructor(private service: Service) {}
  19.   ngOnInit(): void {
  20.   }
  21.   onAcceptClick(key: string): void {
  22.     console.log('you click onAcceptClick'+key)
  23.     this.service.getSingleCharacterz('1').subscribe(
  24.       (result:any)=>{
  25.         console.log(result)
  26.       },(error:any)=>{
  27.         console.error('Error : '+error);
  28.       }
  29.     );
  30.   }
  31.   onAddClick(key: string): void {
  32.     console.log('you click onAddClick' + key)
  33.     this.service
  34.       .postSingleCharacterz('1')
  35.       .pipe(tap())
  36.       .subscribe((resp) =>{
  37.         console.log(resp)
  38.       });
  39.   }
  40. }
复制代码
end

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美食家大橙子

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表