Angular 角镖依赖注入

Angular 角镖依赖注入,angular,dependency-injection,dart,angular-dart,Angular,Dependency Injection,Dart,Angular Dart,我正在使用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(MyRepo

我正在使用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;
}
}
app\u组件中使用
[ClassProvider(MyRepository)]
告诉编译器覆盖您在
main.dart
文件中设置的内容

试试这个:

@Component(
  selector: 'app-component',
  templateUrl: 'app_component.html',
)
@Injectable()
class AppComponent {
  final MyRepository _myRepository;

  AppComponent(this._myRepository);
}
编辑:

main.dart文件不正确,您必须从main.template.dart中引用喷油器:

import 'package:angular/angular.dart';
import 'package:angular_dart/app_component.dart';
import 'package:angular_dart/app_component.template.dart' as ng;
import 'main.template.dart' as self;

@GenerateInjector([
  ClassProvider(MyRepository, useClass: ng.MyRepositoryImpl),
])
final InjectorFactory injector = self.injector$Injector;

void main() {
  runApp(ng.AppComponentNgFactory, createInjector: injector);
}

谢谢但仍然ng.appInjector$Injector未定义。你知道发生了什么事吗?很有魅力!在您回答之后,我只需要将@Injectable()添加到我的应用程序组件中。谢谢