मैं जो करने का प्रयास कर रहा हूं वह है:
जब भी कोई http अनुरोध दर्ज होता है तो मैं स्पिनर का उपयोग करना चाहता हूं। दूसरे शब्दों में, जब भी मेरे app.component में http अनुरोध होता है तो मैं उपयोगकर्ता को लोडिंग स्क्रीन देखना चाहता हूं।
मेरी spinner.component और स्पिनर-सेवा फ़ाइलें this प्रश्न में उत्तर के साथ समान हैं।
और मेरे 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 करने के लिए है, जब भी एक http अनुरोध इन मार्गों में से एक में होता है मैं उपयोगकर्ता के लिए स्पिनर दिखाना चाहते हैं। मुझे पता है कि यह एक बुरा सवाल रहा है, लेकिन मैं कोणीय 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