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有什么问题?可能重复