我使用自助模式,但无法利用其全部功能。
我的模态基本上是一个编辑弹出窗口。所以它有保存和取消。
我真正得到的东西:
我看了很多答案,而我似乎并没有看到他们是如何一起处理的。
var modalInstance = $uibModal
.open({
templateUrl: 'cartModalContent',
controller: 'cartModalInstanceController',
controllerAs: 'cartModalVm',
resolve: {
payData: vm.PayData
}
})
.closed
.then(function(){
$state.go('layout.package-labels');
});
modalInstance.result.then(function () {
// ??
});
答案 0 :(得分:1)
如有疑问always go to the docs。在模态部分,您将找到此文本
open方法返回一个模态实例,一个具有以下属性的对象:
close(result)(类型:function) - 可用于关闭模态,传递结果。
dismiss(reason)(类型:function) - 可用于解散模态,传递理由。
result(Type:promise) - 在关闭模态时解决,在解除模态时拒绝。
打开(类型:保证) - 在下载内容模板并解析所有变量后打开模态时解析。
关闭(类型:保证) - 在关闭模态并完成动画时解析。
rendered(Type:promise) - 在渲染模态时解析。
这意味着什么
$uibModal.open
方法(并将模态定义对象传递给它)时,您将获得一个模态实例dismiss
你的模态时,result
承诺会拒绝,当你close
时,它会解决你的模态。所以你的代码需要看起来像
var modalInstance = $uibModal.open({
animation: true,
templateUrl: 'template.html',
controller: 'modalCtrl',
controllerAs: '$ctrl',
size: size,
appendTo: parentElem,
resolve: {
info: function () {
return '42';
}
}
});
modalInstance.result.then(function (resolvedResponse) {
$state.go('whereever')
}, function (rejectionResponse) {
// do something else
});
因为您的用例是一个简单的确定/取消对话框,您可以使用内置的close
/ dismiss
表达式
<button class="btn btn-primary" type="button" ng-click="$close('ok')">OK</button>
<button class="btn btn-warning" type="button" ng-click="$dismiss('cancel')">Cancel</button>
当你关闭模态时
modalInstance.result.then(function (resolvedResponse) {
// resolvedResponse = 'ok'
}, function (rejectionResponse) {
// rejectionResponse = 'cancel'
});