2015-11-15 3 views
0

Есть ли пример того, как/где определять инъекцию зависимостей с помощью функции()?Angular2: инъекция зависимостей интерфейса с помощью обеспечения()

Я хочу сопоставить класс и ценность интерфейса:

https://angular.io/docs/ts/latest/api/core/provide-function.html

судимое, чтобы сделать это, как это в app.js:

import {provide, Injector} from 'angular2/angular2'; 

export interface EnvSettings { 
    apiUrl: string; 
} 
var injector = Injector.resolveAndCreate([ 
    provide(EnvSettings, {useValue: {apiUrl: 'http://localhost:8080/'}}), 
    //provide(Engine, {useClass: Engine}), 
]); 

Getting ошибку:

Uncaught Token must be defined! 

ответ

2

Ваш токен не может быть интерфейсом (который исчезает с транспиляцией). Однако вы можете создать специальный токен для этой цели, например, так:

export let EnvSettingsToken = new OpaqueToken('env.settings'); 
+0

ОК, но как я бросил его к требуемому типу? Лучше ли определить базовый класс вместо интерфейса? –