무엇을하려고합니까 :
http 요청이 발생할 때마다 회 전자를 사용하고 싶습니다. 즉, 내 app.component에서 http 요청이 발생할 때마다 사용자가 로딩 화면을 보길 원합니다.
내 spinner.component 및 spinner-service 파일은 this 질문의 답변과 동일합니다. HTTP 요청은이 노선 중 하나가 발생할 때마다
그리고 내 app.component의 구성 요소,각 http 요청에 각도 2 로더
@Component({
selector: 'todoApi',
template: `
<div class="foo">
<spinner-component></spinner-component>
<h1>Internship Project</h1>
<a [routerLink]="['Dashboard']">Dashboard</a>
<a [routerLink]="['Tasks']">List</a>
<router-outlet></router-outlet>
<div>
`,
directives: [ROUTER_DIRECTIVES,SpinnerComponent],
providers: [
ROUTER_PROVIDERS,
]
})
@RouteConfig([
{
path: '/dashboard',
name: 'Dashboard',
component: DashboardComponent,
useAsDefault: true
},{
path: '/tasks',
name: 'Tasks',
component: TaskComponent
},{
path: '/detail/:id',
name: 'TaskDetail',
component: TaskDetailComponent
},
])
conclue하는 것입니다, 나는 사용자에게 스피너를 보여주고 싶어요. 나는 이것이 나쁜 질문 이었음을 안다. 그러나 나는 각도 2를 처음 접했고, 누군가가 나를 도와 줄 수 있다면 정말 감사 할 것이다.
감사합니다.
편집! : 귄터의 대답에
솔루션 : 은 내가 HttpClient
구성 요소로 내 http
및 spinner-service
포장 대신 일반 HTTP 모듈의 그것을 사용. 여기 내 HttpClient
구성 요소입니다
import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import { SpinnerService} from './spinner-service';
@Injectable()
export class HttpClient {
constructor(
private http: Http,
public spinner: SpinnerService
){
}
createAuthorizationHeader(headers:Headers) {
headers.append('Authorization', 'Basic ' + btoa('username:password'));
}
get(url) {
this.spinner.start();
let headers = new Headers();
this.createAuthorizationHeader(headers);
return this.http.get(url, { headers: headers }).do(data=> {this.spinner.stop()});
}
post(url, data) {
this.spinner.start();
let headers = new Headers();
this.createAuthorizationHeader(headers);
return this.http.post(url, data, { headers: headers }).do(data=> {this.spinner.stop()});
}
}
어쩌면 당신이 만드는 사용자 정의 서비스 :
로더 서비스를 사용하여 각 요청. – Lekhnath