Angular`Injector`无助于循环依赖

时间:2017-04-07 19:57:39

标签: angular angular-cli

我在Angular的服务中有一个循环依赖(v4,使用CLI)。我知道应该避免循环依赖;只是为了论证而假设我不能影响那个。

我已经阅读了许多建议使用Injector来解决此问题的示例。在我的情况下,它不起作用 - 我仍然会收到Can't resolve all parameters for MyService...错误。

即使我只是在这样的违规服务中创建一个永远不会被调用的方法:

import { Injectable, Injector } from '@angular/core';

import { MyService } from '../my.service';


@Injectable()
export class SomeService{

   constructor(private injector:Injector){}

    test() {//I don't call this anywhere
        setTimeout(() => this.injector.get(MyService).doStuff());
    }
}

......它仍然会产生错误。如果我只是在test()方法中注释掉一行,那么一切正常。

我甚至以相同的方式使用SomeService - 使用injector.get调用它 - 因此injector.get调用是唯一一个在任一方向上产生循环依赖的东西。

为什么这对很多人有效但我仍然得到错误?这是否与Angular CLI的使用有关? ......或者Angular 4改变了什么?

This plunker helps demonstrate the issue.请理解这是从大型应用程序中获取的,这个最小的示例本身就表明设计不佳 - 但它暴露了这个问题。

0 个答案:

没有答案