如何在ionicPopup.show中创建ionicPopup.confirm?

时间:2017-03-02 10:18:15

标签: javascript angularjs ionic-framework popup preventdefault

是否可以在$ionicPopup.confirm()内创建$ionicPopup.show()

我想显示一个关于一个项目的弹出窗口,您可以在此弹出窗口中编辑该项目。还有一个按钮可以删除该项目。我想要一个确认弹出窗口。

问题是$ ionicPopup.show()在按钮上的选项卡上关闭。为避免这种情况,您可以使用e.preventDefault(),但之后不会向下一个承诺返回任何值。

弹出窗口是这样的:

$scope.openPopUp = function(item){
    $scope.popUp = $ionicPopup.show({
        templateUrl: 'templates/popUp.html',
        title: item.title,
        scope: $scope,
        buttons: [
            { /* Cancel button */ }, 
            { /* Save button */ },
            { /* Delete button */ }
        ]
    })
    .then(function(){
        // Save, Delete, etc
    });
};

实现了两种删除按钮,没有完美。

首先。显示确认。 没有关闭确认弹出窗口,但下一个承诺永远不会执行(保存,删除等)。

{
    text: 'Delete',
    type: 'button-block button-light',
    onTap: function(e) {
        e.preventDefault();
        return $ionicPopup.confirm({
            title: 'Delete',
            template: 'Are you sure you want to delete the item?'
        });
    }
}

第二种方式,不执行e.preventDefault()将返回承诺,然后即使取消按钮(没有删除)同时点击确认和显示弹出窗口将被关闭。

{
    text: 'Delete',
    type: 'button-block button-light',
    onTap: function(e) {
        return $ionicPopup.confirm({
            title: 'Delete',
            template: 'Are you sure you want to delete the item?'
        })
        .then(function(answer) {
            if (answer) {
                return true;
            } else {
                 e.preventDefault(); // Too late
            }
        });
    }
}

有没有办法将值返回到下一个承诺,但如果点击取消按钮,也不会关闭第一个弹出窗口?

0 个答案:

没有答案