Angular 渲染div ngIf时发生的事件

Angular 渲染div ngIf时发生的事件,angular,event-handling,Angular,Event Handling,我正在研究以下问题: 我有一个带有ngIf条件的div,我想在渲染div时捕获一个事件。假定您可以使用AfterContentInit事件。 我上面引用的文章展示了一个例子,我已经复制了这个例子,但没有成功 我不知道我做错了什么,但我不能让它工作。我没有错误,但这对我不起作用 我的指令定义为: import{AfterContentInit,EventEmitter,Output,Directive}来自“@angular/core”; @指令({selector:'[after if]'})

我正在研究以下问题:

我有一个带有
ngIf
条件的div,我想在渲染
div
时捕获一个事件。假定您可以使用
AfterContentInit
事件。 我上面引用的文章展示了一个例子,我已经复制了这个例子,但没有成功

我不知道我做错了什么,但我不能让它工作。我没有错误,但这对我不起作用

我的指令定义为:

import{AfterContentInit,EventEmitter,Output,Directive}来自“@angular/core”;
@指令({selector:'[after if]'})
export类AfterIf指令实现AfterContentInit{
@输出('after-if')
public after:EventEmitter=neweventemitter();
public ngAfterContentInit():void{
调试器;
设置超时(()=>{
//超时有助于防止意外的更改错误
这个。之后。下一个(这个);
});
}
}
在我的页面组件中,我导入

从“../directions/after if”导入{AfterIfDirective};
@NGD模块({
提供者:[],
导入:[NgModel、BrowserAnimationsModule、HttpClientModule、,
[指令],
导出:[NgModel,BrowserAnimationsModule,AfterIfDirective]
})
在html中:

<div *ngIf="chkTearline.checked; else NotTearline" (after-if)="Clicked()">

您可以使用
setter
,如下例所示:

模板:


组成部分:

@ViewChild('elementToCheck')设置elementToCheck(){
//在这里,只有在呈现(或销毁)元素时才能访问
}

您可以使用单击的功能发布代码吗?另外,在
setTimeout
中输入一个控制台日志,查看它是否在那里触发。Clicked(){console.log('something got Clicked');}为什么选择器名称和输入名称如此奇怪?默认角度样式afterIf有什么问题?可能重复