angular - 组件渲染后如何从指令中调用函数?

标签 angular typescript angular2-directives angular2-components

如何在组件渲染后从指令中调用函数?

我有组件:

export class Component {
  ngAfterContentInit() {
  // How can i call functionFromDirective()?
  }
}

我想调用这个函数:

export class Directive {

functionFromDirective() {
//something hapenns
}

我该怎么做?

最佳答案

您可以使用 ViewChild 从组件的模板中检索指令,如下所示:

@Directive({
  ...,
  selector: '[directive]',
})
export class DirectiveClass {
  method() {}
}

在你的组件中:

import { Component, ViewChild } from '@angular/core'
import { DirectiveClass } from './path-to-directive'

@Component({
  ...,
  template: '<node directive></node>'
})
export class ComponentClass {
  @ViewChild(DirectiveClass) directive = null

  ngAfterContentInit() {
    // How can i call functionFromDirective()?
    this.directive.method()
  }
}

关于angular - 组件渲染后如何从指令中调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40549894/

相关文章:

css - 在组件范围之外更新样式 - Angular 2

javascript - 如何将 Angular 指令设置为用 Javascript 创建的 DOM 元素

javascript - 在没有 TypeScript Transpiler 的情况下使用 Angular 2

javascript - 将多个用户图像上传到 Firestore 集合的最佳方法是什么?使用 Angular/Ionic 4

javascript - React UseEffect Hook - 值在钩子(Hook)内更新但不在组件主体内

css - 在 Typescript 中定义 CSS Position 接口(interface)的正确方法是什么?

javascript - Angular2/Rxjs 嵌套映射,条件在 guard 中

javascript - *ngFor 指令不适用于数组数组

javascript - 在 Angular 9 的 elemntRef 中找不到 Div 的内部文本

css - 如何在 Angular 2 中更改应用程序范围的 css?