2016-03-02 73 views
1

我有组分Ç和服务小号如何在同一个组件中注入不同的服务令牌?

改变服务小号的值。

组件Ç在网站的不同地方使用两次,所以需要从服务小号读取不同的值。

在两个组件C,我想要一个使用标记tokenFromA,另一个使用tokenFromB

如何在同一个组件中注入不同的服务令牌?由于

// 服务S

export class Service { 
    text:string = ''; 
} 

// C成分

@Component({ 
    selector: 'c-component', 
    providers: [provide("tokenFromA", {useClass: Service})], 
    template: ` 
     <h1>App</h1> 
    ` 
}) 
export class ComponentC { 
    constructor(@Inject('tokenFromA') service:Service) { 
    } 
} 
+1

你所说的“动态”意味着实例? –

+0

@GünterZöchbauer我的意思是在某些时候我想注入'bar2'而不是'bar' –

+0

“在某个时间点”在哪里和什么?在同一应用程序实例中的不同时间或在开发和部署中不同的时间,......? –

回答

1

据我所知,这是只能由TestComponentBuilderoverrideProviders()支持测试。

它也可以要求直接

constructor(private _injector:Injector) { 
    var bar = _injector.get('bar'); 
    var bar2 = _injector.get('bar2'); 
} 
相关问题