真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

AngularJS2中如何實(shí)現(xiàn)Http服務(wù)-創(chuàng)新互聯(lián)

這篇文章主要介紹了AngularJS2中如何實(shí)現(xiàn)Http服務(wù),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

為謝家集等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及謝家集網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、做網(wǎng)站、謝家集網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

關(guān)于http服務(wù)

HttpModule并不是angular的核心模塊,它是一個(gè)附加的模塊,存在于@angular/http中,雖然如此但是依然可以在需要的時(shí)候使用它,只需要在使用之前引入即可。對于大多數(shù)app來說使用http服務(wù)是很常見的,所以我們將HttpModule加入到AppModule的import列表和應(yīng)用的根組件中,這樣就可以在整個(gè)應(yīng)用中使用http服務(wù)了

在自定義服務(wù)中使用Http服務(wù)

http服務(wù)通過其get方法獲取數(shù)據(jù),他會返回RxJS Observable,我們希望使用的數(shù)據(jù)是Promise,然而 Observable 并沒有toPromise()方法,可以在自定義服務(wù)中這樣引入

import 'rxjs/add/operator/toPromise';

如此就拓展了Observable的功能了

具體代碼如下

import { Injectable }  from '@angular/core';

import { Headers, Http } from '@angular/http';

import 'rxjs/add/operator/toPromise';

import { Hero } from './hero';
 private heroesUrl = 'api/heroes'; // URL to web api

 constructor(private http: Http) { }

 getHeroes(): Promise {
  return this.http.get(this.heroesUrl)
        .toPromise()
        .then(response => response.json().data as Hero[])
        .catch(this.handleError);
 }

 private handleError(error: any): Promise {
  console.error('An error occurred', error); // for demo purposes only
  return Promise.reject(error.message || error);
 }

在回調(diào)函數(shù)then()中調(diào)用了返回對象的json()方法將data從返回對象中分離出來

.then(response => response.json().data as Hero[])

這里的.data是因?yàn)榉祷貙ο笾杏衐ata這個(gè)屬性,具體情況下會不一樣

注意:Http failure是經(jīng)常發(fā)生的,必須預(yù)料到會有異常的可能,所以在方法最后捕獲了異常并將其傳遞給異常處理器,使用Promise.reject()將錯(cuò)誤信息返回給服務(wù)調(diào)用者

利用服務(wù)實(shí)現(xiàn)數(shù)據(jù)的增刪改查

信息查詢

可以在請求url里面帶上參數(shù),這樣就可以將參數(shù)傳到后臺,服務(wù)器查到信息后返回到前臺

  getHero(id: number): Promise {
    const url = `${this.heroesUrl}/${id}`;
    return this.http.get(url).toPromise()
   .then(response => response.json().data as Hero)
   .catch(this.handleError);
  }

修改信息

在自定義服務(wù)中

  private headers = new Headers({'Content-Type': 'application/json'});
  update(hero: Hero): Promise {
  const url = `${this.heroesUrl}/${hero.id}`;
  return this.http
  .put(url, JSON.stringify(hero), {headers: this.headers})
  .toPromise()
  .then(() => hero)
  .catch(this.handleError);
}

依然是在url后帶上id告知服務(wù)器要修改的記錄標(biāo)識,JSON.stringify()將對象轉(zhuǎn)化成json字符串,通過put將字符串放到請求中,header說明了請求體的類型

在調(diào)用服務(wù)的組件中

   save(): void {
   this.heroService.update(this.hero)
    .then(() => this.goBack());
  }

修改成功后返回前一個(gè)視圖

添加信息

在自定義服務(wù)中

 create(name: string): Promise {
 return this.http
  .post(this.heroesUrl, JSON.stringify({name: name}), {headers: this.headers})
  .toPromise()
  .then(res => res.json().data)
  .catch(this.handleError);
}

刪除信息

在自定義服務(wù)中

  delete(id: number): Promise {
   const url = `${this.heroesUrl}/${id}`;
   return this.http.delete(url, {headers: this.headers})
    .toPromise()
    .then(() => null)
    .catch(this.handleError);
  }

這步只是將后臺的信息刪除了,但是本地?cái)?shù)組中依然存在,所以依然會在視圖中顯示,所以就要在組建中進(jìn)行一些處理

delete(hero: Hero): void {
 this.heroService
   .delete(hero.id)
   .then(() => {
    this.heroes = this.heroes.filter(h => h !== hero);
    if (this.selectedHero === hero) { this.selectedHero = null; }
   });
}

這步就是將已經(jīng)刪除的數(shù)據(jù)從本地?cái)?shù)組中過濾掉

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“AngularJS2中如何實(shí)現(xiàn)Http服務(wù)”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)建站,關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)站名稱:AngularJS2中如何實(shí)現(xiàn)Http服務(wù)-創(chuàng)新互聯(lián)
文章鏈接:http://weahome.cn/article/pjdgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部