【发布时间】:2016-09-30 08:36:15
【问题描述】:
我编写了一个自定义指令,在我的 Angular 2 应用程序中使用它来关闭我的 Angular 2 应用程序的所有不同组件中的内容面板(我的模板中的一些内容持有者)。由于每个组件的代码完全相同,我认为编写一个可以定义一次并在所有组件中使用的指令是有意义的。这是我的指令的样子:
import { Directive, ElementRef, HostListener, Injectable } from '@angular/core';
@Directive({
selector: '[myCloseContentPanel]'
})
export class CloseContentPanelDirective {
private el: HTMLElement;
constructor(el: ElementRef) {
this.el = el.nativeElement;
}
@HostListener('click') onMouseClick() {
this.el.style.display = 'none';
}
}
现在我希望我可以在 app.component 父组件中导入该指令一次,然后我可以在所有子组件中使用该指令。遗憾的是,这不起作用,所以我必须分别在每个组件中导入这个指令。难道我做错了什么?或者这种行为根本不可能?
【问题讨论】:
标签: angular angular2-directives