DI - 找不到EventBus的提供者

时间:2014-10-24 22:44:44

标签: dependency-injection dart angular-dart

使用Angular Dart,我定义了一个这样的事件总线:

class MyModule extends Module {

    MyModule() {
        bind(EventBus, toImplementation: EventBus);
        ...
    }
}

当我想通过简单地执行以下操作将此事件总线注入组件时:

class MyComponent {

    final EventBus _eventBus;

    MyComponent(this._eventBus) {}
}

我收到错误:

No provider found for EventBus!

我不知道如何调试这个......

事件总线是一个外部库,如下所示:

library event_bus;

import 'dart:async';

@MirrorsUsed(symbols: '*') // Do not keep any names.
import 'dart:mirrors';

class EventBus {

  StreamController _streamController;

  EventBus({bool sync: false}) {
    _streamController = new StreamController.broadcast(sync: sync);
  }
  ...
}

欢迎任何帮助......谢谢!

1 个答案:

答案 0 :(得分:1)

我有点晚了,但在这种情况下 - 当你不能轻易地在类上放置@Injectable()注释时 - 最简单的解决方案是给注入器一个值:

bind(EventBus, toValue: new EventBus());