export class OpaqueToken {
constructor(protected _desc: string) {}
toString(): string { return `Token ${this._desc}`; }
}
import { ReflectiveInjector } from '@angular/core';
var t = new OpaqueToken("value");
var injector = ReflectiveInjector.resolveAndCreate([
{provide: t, useValue: "bindingValue"}
]);
injector.get(t); // "bindingValue"
export class InjectionToken<T> extends OpaqueToken {
private _differentiate_from_OpaqueToken_structurally: any;
constructor(desc: string) { super(desc); }
toString(): string { return `InjectionToken ${this._desc}`; }
}
import { ReflectiveInjector } from '@angular/core';
var t = new InjectionToken<string>("value");
var injector = ReflectiveInjector.resolveAndCreate([
{provide: t, useValue: "bindingValue"}
]);
injector.get(t); // "bindingValue"
@NgModule({
...,
providers: [
{
provide: 'apiUrl',
useValue: 'http://localhost:4200/heros'
}
],
bootstrap: [AppComponent]
})
export class AppModule { }
@Injectable()
export class HeroService {
constructor(private loggerService: LoggerService,
private http: Http,
@Inject('apiUrl') private apiUrl) { }
getHeros(): Observable<Array<{ id: number; name: string }>> {
this.loggerService.log('Fetching heros...');
return this.http.get(this.apiUrl)
.map(res => res.json())
}
}
export const THIRD_PARTY_PROVIDERS = [
{
provide: 'apiUrl',
useValue: 'Other Url'
}
];
import { THIRD_PARTY_PROVIDERS } from './third-party';
@NgModule({
...,
providers: [
{
provide: 'apiUrl',
useValue: 'http://localhost:4200/heros'
},
THIRD_PARTY_PROVIDERS
],
bootstrap: [AppComponent]
})
export class AppModule { }
GET http://localhost:4200/Other%20value 404 (Not Found)
import { InjectionToken } from '@angular/core';
export const API_URL = new InjectionToken<string>('apiUrl');
import { API_URL } from './app.tokens';
@NgModule({
...,
providers: [
{
provide: API_URL,
useValue: 'http://localhost:4200/heros'
},
THIRD_PARTY_PROVIDERS
],
bootstrap: [AppComponent]
})
export class AppModule { }
import { API_URL } from './app.tokens';
@Injectable()
export class HeroService {
constructor(private loggerService: LoggerService,
private http: Http,
@Inject(API_URL) private apiUrl) { }
}
import { InjectionToken } from '@angular/core';
const API_URL = new InjectionToken<string>('apiUrl');
export const THIRD_PARTY_PROVIDERS = [
{
provide: API_URL,
useValue: 'Other value'
}
];
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有