使用ngx-progressbar 插件可以通过简单几句代码实现loading加载效果。
npm install ngx-progressbar --save
在app.module.ts文件中,我们需要引用NgProgressModule,然后添加到NgModule的imports中。在公共页面添加标签ng-progress,默认效果是红色。想要修改显示特效。可以查看https://www.npmjs.com/package/ngx-progressbar#ngprogresscomponent-options-inputs 。
全局加载动作条代码:
1 ... 2 import { NgProgressModule, NgProgressBrowserXhr } from 'ngx-progressbar'; 3 import { BrowserXhr } from '@angular/http'; 4 ... 5 6 @NgModule({ 7 declarations: [ 8 AppComponent 9 ], 10 imports: [ 11 BrowserModule, 12 NgProgressModule, 13 HttpModule 14 ], 15 providers: [ 16 {provide: BrowserXhr, useClass: NgProgressBrowserXhr} 17 ], 18 bootstrap: [AppComponent] 19 }) 20 export class AppModule { }
而我们想要在单个接口中使用加载动作条。需要在http方法中使用progressService的方法:
ngOnInit() {
const sampleUrl = 'http://bla.com';
this.progressService.start();
setTimeout(() => {
this.progressService.set(0.1);
}, 1000);
setTimeout(() => {
this.progressService.inc(0.2);
}, 2000);
this.http.get(sampleUrl)
.subscribe((response) => {
this.progressService.done();
this.posts = response.json();
});
}
这样加载接口时,页面顶部会显示加载动画。
