2016-04-29 9 views

答えて

5

私は@Injectデコレータ使用します。

@Injectable() 
export class SomeService { 
    constructor(@Inject('message') message:string) { 
    } 
} 

がサービスプロバイダを設定することを忘れないでくださいたとえば、アプリケーションブートストラップするとき:。

bootstrap(AppComponent, [ SomeService, myProvider ]); 
2

Dependency Injection docは、もはや文字列トークンを言及しているので、私はOpaqueTokenを使用することをお勧めしません:

アプリ/コnfig.ts

import {OpaqueToken, provide} from 'angular2/core'; 

export let MY_MESSAGE = new OpaqueToken('my-msg'); 
export let myProvider = provide(MY_MESSAGE, { useValue: 'Hello' }); 

APP/app.component.ts

import {Component} from 'angular2/core'; 
import {myProvider} from './config'; 
import {MyService} from './MyService'; 

@Component({ 
    selector: 'my-app', 
    providers: [myProvider, MyService], 
    template: `{{msg}}` 
}) 
export class AppComponent { 
    constructor(private _myService:MyService) { 
    this.msg = this._myService.msg; 
    } 
} 

APP/MyService.ts

import {Injectable, Inject} from 'angular2/core'; 
import {MY_MESSAGE} from './config'; 

@Injectable() 
export class MyService { 
    constructor(@Inject(MY_MESSAGE) private _message:String) { 
    this.msg = _message; 
    } 
} 

Plunker

関連する問題

 関連する問題