需求描述: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)
});
}
}