2017-05-11 16 views
3

文字列をサービスファクトリに挿入しようとしていますが、エラーTS1206: Decorators are not valid hereが発生しています。サービスファクトリに文字列を挿入するにはどうすればよいですか?

私は、次のコードを使用しています -

export let serviceFactory = (http: Http, @Inject('TEMPLATE') template: string) => { 
    return new Service(http, template); 
} 

私はそうのように私の工場を使用する - 私は、サービス工場内の文字列を挿入するにはどうすればよい

export let serviceProvider = { 
    provide: Service, 
    useFactory: serviceFactory, 
    deps: [Http] 
}; 

+1

どのようにのServiceFactoryを使うのですか? – yurzui

答えて

3

app.module.ts

export let serviceFactory = (http: Http, template: string) => { 
    return new Service(http, template); 
} 

export let serviceProvider = { 
    provide: Service, 
    useFactory: serviceFactory, 
    deps: [Http, [new Inject('TEMPLATE')]] 
}; 

@NgModule({ 
    imports: [ 
    BrowserModule, 
    HttpModule 
    ], 
    declarations: [ AppComponent ], 
    providers: [ 
    { provide: 'TEMPLATE', useValue: 'test' }, 
    serviceProvider, 
    ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

service.ts

@Injectable() 
export class Service { 
    constructor(private http: Http, @Inject('TEMPLATE') template: string) { 
     console.log(template); 
    } 
} 

Plunker Example

+0

ああ、クール!あなたはそのような '注入 'を使うことはできないと思っていませんでした。ありがとうございました。 – onetwothree

関連する問題