在服务中关闭离子模态

时间:2017-07-05 12:26:46

标签: angular typescript ionic-framework

我正在使用Ionic 3(Angular 4),我想在服务中关闭离子模态,这是可能的吗?

Screen of DataService.ts

我想在我的DataService.ts的另一个函数中调用close()函数来关闭我的模态deleteconfirm.ts

1 个答案:

答案 0 :(得分:0)

根据您的代码看起来,在我看来,您的服务必须了解该视图。

无论何时打开模式,您都可以在服务中添加模态实例,以便您可以引用该实例以便在服务中关闭它。

示例(只是一个组成示例,因为示例中的代码太简短了):

// Example component
export class MyComponent implements OnInit {
    modal: Modal;

    constructor(private modalService: ModalService) {}

    ngOnInit() {
        this.modalService.modal = this.modal;
    }

    close() {
        this.modalService.close();
    }
}

// Example service
export class ModalService {
    _modal: Modal;

    set modal(modal: Modal) {
        this._modal = modal;
    }

    close() {
        if (this._modal) {
            this._modal.close();
            this._modal = null;
        }
    }
}

这种方法允许可移植性,因为只需注入ModalService就可以从任何组件中关闭模态。