在angular中咱們能夠將http請求封裝成服務,在組件中引入該服務,
就能夠實現先後端的數據請求。
具體實現:
一、ng generate service app
在app根目錄下生成app.service.ts的文件,裏面基本配置項已經生成。
二、引入Injectable注入模塊,同時引入http模塊
import { Injectable } from '@angular/core’
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';編程
@Injectable({
providedIn: 'root'
})
加上providedIn: ‘root’,自動將服務加入到跟模塊的providers中,這樣該服務就能夠在應用中的任何地方使用
三、構造函數中聲明http的私有屬性,將httpClient注入到http中
constructor (
private $http: HttpClient
){}json
httpParams類能夠設置請求參數後端
具體設置:promise
let params = new HttpParams();app
params=params.set(key, value);異步
httpHeader類用來設置請求頭ide
具體設置:異步編程
let headers = new HttpHeaders().set("Content-Type", "application/json");函數
http的Request方法,執行請求並返回Observable對象(相似於promise,處理異步編程的解決方案),最後直接調用Observable.subscribe方法處理結果。post
例如:
this.$http.request('get', url, {params: params, headers: headers});
request方法的傳參官方說明,能夠針對post,get等作統一封裝。