假设我有以下标记:

<my-comp myDirective></my-comp>

有没有办法访问组件实例from the directive

更具体地说,我希望能够从MyDirective,最好是without adding anything to the HTML above访问MyComponent的属性和方法.

推荐答案

你可以直接注射

class MyDirective {
  constructor(private host:MyComponent) {}

一个严重的限制是,您需要提前知道组件的类型.

另请参阅https://github.com/angular/angular/issues/8277
对于事先不知道类型的情况,它还提供了一些解决方法.

Angular相关问答推荐

根据Angular中的构建来卸载独立组件

Angular 动画—淡出适用于DIV,不完全适用于子组件

仅在展示时使用垫式步进器

如何使用带有17角的Swiper 11.0.5元素

带独立零部件的TranslateLoader[Angular 16]

VS代码中带Angular 17的缩进新控制流

如何让 ag-Grid 事件读取私有方法?

Aws 代码部署在 BeforeBlockTraffic 步骤失败,即使在更新策略后也会超时

您如何链接需要多个先前可观察对象的依赖订阅

可观察的等待直到另一个可观察的值

Angular 从 13.3.8 恢复到 13.3.7

怎样在 Angular 2 或 4 中将输入字段设为只读?

如何在 Angular 2 中获取与 ElementRef 关联的组件的引用

如何在 ngFor 循环中创建变量?

如何使用依赖注入扩展组件?

Angular 6在输入键上添加输入

BrowserAnimationsModule 和 NoopAnimationsModule 有什么区别?

Angular 4 错误:没有 HttpClient 的provider提供者

如何处理Angular2中的查询参数

如何在 Angular CLI 6: angular.json 中添加 Sass 编译?