【问题标题】:AngularDart 5: How to get parent componentAngularDart 5:如何获取父组件
【发布时间】:2018-05-15 08:42:12
【问题描述】:

在 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 的正确方法是什么?

【问题讨论】:

    标签: dart angular-dart


    【解决方案1】:

    您需要设置父级的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),
      ], 
    

    进行此更改是为了减少生成的代码大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 2019-02-08
      • 2012-05-11
      • 1970-01-01
      相关资源
      最近更新 更多