是否可以在$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
}
});
}
}
有没有办法将值返回到下一个承诺,但如果点击取消按钮,也不会关闭第一个弹出窗口?