बिट उलझन extends
साथ और सभी @thierry द्वारा प्रदान की जवाब के रूप में, आप एक सामान्य वर्ग/सेवा का उपयोग कर सकते हैं, जिसमें आप अपने सभी ग्लोबल वेरिएबल्स को स्टोर कर सकते हैं और बूटस्ट्रैपिंग के समय उस वर्ग को इंजेक्ट कर सकते हैं ताकि क्लास अब ऐप के सभी अन्य वर्गों/घटकों के लिए उपलब्ध हो और अब भी आप आसानी से अपनी विविधता बदल सकें बस के बजाय सभी घटकों में परिवर्तन करने के लिए एक ही स्थान पर बदल कर ले मूल्य यहाँ उसी के उदाहरण है -
import {Component, Injecable} from 'angular2/core';
import {Http, Response, RequestOptions, Headers, Request, RequestMethod} from 'angular2/http';
@Injecable()
export class GlobalService {
public base_path: string;
public headers: Headers;
public requestoptions: RequestOptions;
public res: Response;
constructor(public http: Http, public router: Router) {
this.base_path = "http://128.199.190.109/api/";
}
public getRequsetOptions(url: string): RequestOptions {
this.headers = new Headers();
this.headers.append("Content-type", "application/json");
this.headers.append("Authorization", 'Bearer ' + localStorage.getItem('id_token'));
this.requestoptions = new RequestOptions({
method: RequestMethod.Get,
url: url,
headers: this.headers
});
return this.requestoptions;
}
}
और सिर्फ इस तरह बूटस्ट्रैप में इस सेवा वर्ग रजिस्टर -
bootstrap(AppComponent, [
HTTP_PROVIDERS,GlobalService , XYZ...
]);
अब इस GlobalService
वर्ग सभी अन्य वर्गों के लिए उपलब्ध है,
अब भी जब आप उपयोग करते हैं तो प्रदाताओं की सूची में इस कक्षा को पंजीकृत करने की आवश्यकता नहीं होती है क्योंकि कोणीय स्वयं सभी घटकों में इसे प्रारंभ करता है, अब इन वैश्विक चर/फ़ंक्शन का उपयोग करें इस तरह की कक्षा -
import {GlobalService} from './GlobalService';
import {Http} from 'angular2/http';
@Injectable()
export class ABC {
constructor(private base_path_service: GlobalService, private http: Http) {}
SomeMethod(url) {
return this.http.request(new Request(this.base_path_service.getRequsetOptions(url)))
.map(res=> {
// DO your code
});
}
स्रोत
2016-04-16 19:54:23
बहुत बढ़िया !! लेकिन जब मैं अपने 'boot.ts' में 'प्रदान' का उपयोग करता हूं तो मुझे निम्न त्रुटि मिलती है: 'त्रुटि: संदर्भ त्रुटि: प्रदान नहीं किया गया है'। यही है: 'आयात {कस्टमRequestOptions} से "।/ सहायकों/CustomRequestOptions "; बूटस्ट्रैप (AppComponent, [ JwtService, HTTP_PROVIDERS, ROUTER_PROVIDERS, MATERIAL_PROVIDERS, SidenavService, प्रदान (RequestOptions, {useClass: CustomRequestOptions}) ]); ' – TheUnreal
हाँ, आप की जरूरत है "angular2/core" मॉड्यूल से "प्रदान करें" फ़ंक्शन आयात करने के लिए ... –
यह बहुत अच्छा है, बस यह जानना कि यह ** http.post * और ** http.put ** के लिए काम नहीं करता है, लेकिन यह ** http.request ** के लिए काम करता है, इसलिए आपके पास कुछ ऐसा हो सकता है: ** this.http.request ('/ user/1', {body: body, method: 'PUT'}) ** – tibbus