如何创建Promise,用于模态确认对话框

时间:2017-03-04 22:17:53

标签: javascript angular promise

我实际上正在使用Angular 2,但我找到了一个解决方案,但在我看来它只是一种解决方法。它现在还没有完全发挥作用。
我创建了一个可以在任何地方注入的服务,以及一个位于根组件模板的组件。

class DialogService {
    output: Subject<DialogEvent>

    constructor(){
        this.output = new Subject()
    }

    ask(question = 'Are you sure?', accept = 'Ok', cancel = 'Cancel') {
        var input = new Subject()
        this.output.next({question, cancel, accept, input})
        return input.toPromise()
    }
}
class DialogComponent {
    private output: Subject<boolean>
    texts: DialogEvent = {}

    constructor(private dialogService: DialogService) {
        this.dialogService.output.subscribe(event => {
            this.texts = event
            this.output = event.input
            this.show()
        })
    }

    cancel() {
        this.output.next(false)
        this.hide()
    }

    accept() {
        this.output.next(true)
        this.hide()
    }
}

此设置适用于这一点,它将在服务中询问时打开,并以正确的功能(接受或取消)关闭,但不会创建或触发承诺。

无论如何,如果有更好的方法来完成这项工作,我100%就可以了。

0 个答案:

没有答案