2015-06-10 28 views
0
class Foo { 
    constructor(dep1) { 
    } 
} 
Foo.$inject = ['Dependency1'] 

我知道你可以在角度/类型6中做这样的DI。不过,我还需要将某些东西传递给foo(一个配置对象)的构造函数。这是逃避我,因为据我所知,DI参数首先。

从本质上讲,我想这样做

let foo = new Foo(config); //config defined above 

不过还是在类注射依赖的好处。

回答

0

解决方案1:

let angular = window.angular; 
class Foo{ 
    constructor(config){ 
     let injector = angular.injector(); 
     let dep1 = injector.get('Dependency1'); 
     this.prop1 = config.prop; 
     this.prop2 = dep1.get(); 
    } 
} 

解决方案2:

//assuming ES6 modules, export dependency as module 
import dependency from 'path'; 
class Foo{ 
    constructor(config){ 
     this.prop1 = config.prop; 
     this.prop2 = dependency.get(); 
    } 
} 
+0

是否有一个理由,为什么你不能使用美孚作为一个角度的服务? –

+0

慢慢地从角度1移动到角度2,以es6作为中间的一个步骤 – Conqueror