使用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);
}
...
}
欢迎任何帮助......谢谢!
答案 0 :(得分:1)
我有点晚了,但在这种情况下 - 当你不能轻易地在类上放置@Injectable()注释时 - 最简单的解决方案是给注入器一个值:
bind(EventBus, toValue: new EventBus());