首頁 > web前端 > js教程 > 主體

Angular2 http服務的詳情介紹。 2018最新的angularjs2服務介紹詳情

寻∝梦
發布: 2018-09-07 14:28:37
原創
949 人瀏覽過

angular2的http服務是用於從後台程式取得或更新資料的一種機制,通常情況我們需要將與後台交換資料的模組做出angular服務,利用http來取得更新後台資料,angular使用http的get或put進行後台呼叫採用的是ajax方式,跨域問題需要單獨處理。下面來看一個例子,示範從後台web api中取得資料並進行頁面載入。

1、由於要使用http服務,所以我們一定要在我們的web頁面需要引入<script src="node_modules/angular2/bundles/http.dev.js">< /script>,這一步很關鍵,我之前發生的找不到http服務的原因就在此,浪費了很多時間在此。
2、在angular入口還需引入HTTP_PROVIDERS,並註入,同時由於要使用map,subscribe等所以需要使用rxjs

庫,那麼就需要事先在入口程式中引入

import 'rxjs/Rx'

,血的教訓

import {bootstrap} from &#39;angular2/platform/browser&#39;;
import {HTTP_PROVIDERS} from &#39;angular2/http&#39;;
import {myFrame} from "./frame/component/myFrame.component";
import &#39;rxjs/Rx&#39;;
bootstrap(myFrame, [ HTTP_PROVIDERS]);
登入後複製

3、建立服務

import {Injectable} from &#39;angular2/core&#39;;
import {Http } from &#39;angular2/http&#39;;
@Injectable()
export class channelService {
private _carsUrl: string = "http://localhost:6611/api/Chanel";
constructor(private _http: Http) {
}
getChannelList() {
return this._http.get(this._carsUrl).map(responce => responce.json())
}
在这个服务中使用了`http`中的`get`来获取数据,这里get的`url(web api)`是与我目前的`anuglar`应用在一个域内。作为服务我们需要申明该服务是可注入的`@Injectable()`
登入後複製

4、服務呼叫

import {Component} from &#39;angular2/core&#39;;
import {appService} from &#39;./../service/appsetting.service&#39;
import {channelService} from &#39;./../service/channel.service&#39;
import {Channel} from &#39;./../model/channel&#39;
@Component({
selector: &#39;topNav&#39;,
templateUrl: &#39;../app/frame/template/topNav.html&#39;,
providers: [appService, channelService]
})
export class topNav {
 webTitle: string;
constructor(private _appService: appService,private _channelService:channelService) {  
this.getWebTitle();
}
getWebTitle() {
this.webTitle = this._appService.AppSetting.webTitle;
}
getChannelList() {
this._channelService.getChannelList().subscribe(res => { this.items=res});
}
} 
这里就和普通服务调用没什么区别了,需要先import再在providers中申明,然后在构造函数中注入就行了。
登入後複製

這個例子中有個需要注意的是我們前端model和後端model有可能不一致,那麼需要在獲取數據後再進行轉換,如果類型字段都一致那麼可以直接使用,由於是json格式,系統會自動將後台model轉換為我們前端使用的model

Web api:

public class ChanelController : ApiController
 {
 // GET api/<controller>
public IEnumerable<Chanel> Get()
{
 return new Chanel[] { new Chanel{ ID="1", ChanelName="组织机构"},new Chanel{ ID="2",ChanelName="通知公告"} };
}
}
注:web api 可以使用Swashbuckle 进行测试,安装 PM>Install-Package Swashbuckle,使用时只需在路径后加入swagger,如http://localhost:6611/swagger/ui/index
登入後複製
這篇文章到這就結束了。  (想看更多就到PHP中文網

angularjs學習手冊
中學習)有問題的可以下方提問。

#########

以上是Angular2 http服務的詳情介紹。 2018最新的angularjs2服務介紹詳情的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!