Я использую AngularDart и не могу понять, как внедрить мои зависимости точки входа.
Main.dart:
import 'package:angular/angular.dart';
import 'package:angular_dart/app_component.dart';
import 'package:angular_dart/app_component.template.dart' as ng;
@GenerateInjector(const [
const Provider(MyRepository, useClass: ng.MyRepositoryImpl),
])
final InjectorFactory appInjector = ng.appInjector$Injector;
void main() {
runApp(ng.AppComponentNgFactory, createInjector: appInjector);
}
app_component.dart
import 'package:angular/angular.dart';
@Component(
selector: 'app-component',
templateUrl: 'app_component.html',
providers: [ClassProvider(MyRepository)]
)
class AppComponent {
MyRepository myRepository; //This is not getting injected
}
abstract class MyRepository {
}
class MyRepositoryImpl implements MyRepository {
}
Мой вопрос касается метода runApp и ng.AppComponentNgFactory.Я не вижу, как разрешается инъекция.
Заранее спасибо,
РЕДАКТИРОВАТЬ: То, что я ищу, это как сказать компилятору генерировать строкукак:
new AppComponent(new MyRepositoryImpl);
и потреблять его как
class AppComponent{
final MyRepository _repo;
AppComponent(MyRepository repo) {
this._repo = repo;
}
}