【问题标题】:Should @ViewChild work on directives@ViewChild 是否应该处理指令
【发布时间】:2016-08-25 13:19:23
【问题描述】:

我正在尝试使用 @ViewChild 调用指令上的方法...但它似乎不起作用。我收到以下错误:

TypeError: this.autoComplete.clear is not a function

但它确实适用于组件,或者当我将类装饰器切换到 @Component 时。

另外,是否有另一种推荐的方法来调用指令的方法。

【问题讨论】:

  • 能否请您为此分享一些 plunker
  • 不需要plunker,这是理论上的问题
  • 这个问题没有提供足够的信息来说明你试图完成什么。请提供更多代码。
  • 我真的不明白为什么,问题的标题和第一句话的第一部分对我来说很清楚。 “如果@ViewChild 处理指令,我正在尝试通过 ViewChild 实例调用指令的方法。”

标签: angular angular2-directives


【解决方案1】:

您无法在构造函数中访问@ViewChild(MyDirective) someName;。 someName 仅在调用 ngAfterViewInit() 时设置。

更新

你可能想打电话

this.autoComplete.nativeElement.clear();

【讨论】:

  • 我从文档中了解到这一点,我试图通过 ViewChild 引用实例调用指令的方法。如果它尚未设置,我会收到关于它未定义的错误,正如您从错误中看到的那样,情况并非如此。
  • 我更新了我的答案,但是在没有看到导致此错误的代码的情况下进行讨论是毫无意义的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-02
  • 1970-01-01
  • 2020-09-04
  • 2012-11-01
  • 1970-01-01
  • 2021-02-03
相关资源
最近更新 更多