5

单击 p-dialog 关闭(X)按钮时如何调用角度函数?

我已经搜索并尝试过这个(onHide)="cancel()"。但它不起作用。请分享您的解决方案。

我知道我们可以使用一个close/cancel按钮来隐藏弹出窗口。但在我的场景中,我想在单击(X)按钮时调用一个事件。

4

5 回答 5

6

(onHide)="cancel()"根据这个Plunkr实际上工作正常。

于 2017-05-08T13:35:10.973 回答
1

尝试: (click)="cancel()" 代替。

我有同样的错误,但我使用点击方法解决了它。问候:)

于 2017-05-23T21:45:04.227 回答
0

您应该使用如下两个事件:

onBeforeHide: EventEmitter<any>;
onAfterHide: EventEmitter<any>;

在 html 中用作

(onBeforeHide)="onBeforeHide()"
(onAfterHide)="onAfterHide()"

参考:https ://github.com/primefaces/primeng/issues/956

于 2017-08-25T03:36:36.247 回答
0

一种解决方法是使用布尔值来显示 p-dialog

   [(visible)]="myBoolean"

当您想要显示 p-dialog 时,您将该布尔值设置为 true 然后使用 (click) 事件。例如

    (click)="doSomething($event)".

在你的 ts 做

    doSomething(event) {
        // If we are clicking the close button and not something else
        if (event.target.className === "fa fa-fw fa-close") {
            myBoolean = false;
        }
    }
于 2018-02-01T10:01:14.083 回答
0

只需添加以上内容,如果您[(visible)]="myBool_1 || myBool_2" 依赖于多个变量。

单击X将尝试将最后一个变量设置myBool_2为 false,我们可以通过使用 setter 函数来利用它。

所以[(visible)]="isVisible"

class component {
 public get isVisible(): boolean {
    return myBool_1 || myBool_2
 }
 public set isVisible(val: boolean) {
   this.myBool_1 = this.myBool_2 = val;
   this.doSomethingOnClose() 
 }
}
于 2020-07-14T07:48:59.557 回答