AngularDart 5: как получить родительский компонент - PullRequest
0 голосов
/ 15 мая 2018

В AngularDart 3 или 4 мы можем написать

@Component(
    selector: 'my-app', 
    template: '<my-child></my-child>', 
    directives: [ChildComponent])
class AppComponent {}

@Component(selector: 'my-child', template: 'The child')
class ChildComponent {
  final AppComponent _parent;

  ChildComponent(this._parent);
}

В ChildComponent есть родительский элемент, введенный в конструктор.

Когда я пытаюсь преобразовать этот код в AngularDart 5, у меня появляется эта ошибка: No provider found for AppComponent

Как правильно преобразовать этот код в AngularDart 5?

1 Ответ

0 голосов
/ 15 мая 2018

Вам нужно установить visibility родительского элемента, чтобы сделать его инъекционным

@Component(
  ...,
  visibility:  Visibility.all

или (см. Также https://github.com/dart-lang/angular/blob/11c05e29fafcea13e4d54f246e70402460777e94/angular/lib/src/core/metadata/visibility.dart#L41)

@Component(
  selector: 'parent',
  directives: const [Child],
  providers: const [
    const ExistingProvider(Example, useExisting: Parent),
  ], 

Это изменение было сделано для уменьшения размера сгенерированного кода.

...