需求描述:http请求的url格式都是’http://debug.xxx.com‘+’/url’,在请求之前显示loading,在请求结束隐藏loading 目前只封装了get,其他请求类似,后期再补充
MyHttp.ts
import {Injectable} from '@angular/core'; import {Http} from '@angular/http'; import 'rxjs/Rx'; @Injectable() export class MyHttp { public restServer; public http; constructor(Http:Http) { this.http = Http; this.restServer = 'http://debug.xxx.com' } public get(url, params?:Object, cb?:Function) { console.log('开始请求') var vm = this; var searchParams = ''; if (params) { for (var key in params) { searchParams += key + '=' + params[key]; } } vm.http.get(vm.restServer + url, { search: searchParams }) .map(res => res.json()) .subscribe(data => { console.log('请求结束', data) cb(data) }); } }在组件中调用MyHttp demo.ts
import {MyHttp} from './../service/MyHttp'; @Component({ selector: 'demo', templateUrl: './demo.html', providers: [MyHttp] }) export class Demo { constructor(MyHttp:MyHttp) { MyHttp.get('/url', {}, function (data) { console.log('结果', data) }); } }