gpt4 book ai didi

angular - 呈现 div ngIf 时的事件

转载 作者:太空狗 更新时间:2023-10-29 18:29:21 24 4
gpt4 key购买 nike

我正在查看问题:https://stackoverflow.com/a/44737636/973651

我有一个带有 ngIf 条件的 div,我想在 div 呈现时捕获一个事件。据推测,您可以使用 AfterContentInit 事件。我在上面引用的文章显示了一个示例,我已经复制了它,但没有成功让它发挥作用。

我不知道我做错了什么,但我无法让它工作。我没有收到任何错误,但它对我不起作用。

我的指令定义为:

import { AfterContentInit, EventEmitter, Output, Directive } from '@angular/core';

@Directive({ selector: '[after-if]' })
export class AfterIfDirective implements AfterContentInit {
@Output('after-if')
public after: EventEmitter<AfterIfDirective> = new EventEmitter();

public ngAfterContentInit(): void {
debugger;
setTimeout(() => {
// timeout helps prevent unexpected change errors
this.after.next(this);
});
}
}

在我导入的页面组件中。

import { AfterIfDirective } from '../directives/after-if';


@NgModule({
providers: [],
imports: [NgModel, BrowserAnimationsModule, HttpClientModule,
AfterIfDirective],
exports: [NgModel, BrowserAnimationsModule, AfterIfDirective]
})

在 html 中:

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

我错过了什么?

这在 Angular 5 中不起作用吗?

  Clicked() {
console.log('something got clicked');
}

最佳答案

您可以像下面的示例一样使用 setter:

模板:

<div #elementToCheck *ngIf="expr"></div>

组件:

@ViewChild('elementToCheck') set elementToCheck () {
// here you get access only when element is rendered (or destroyed)
}

关于angular - 呈现 div ngIf 时的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50241734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com