:模式
<script type="text/ng-template" id="create.html">
<div ng-controller="CreateCampaignCtrl" id="createModal">
<div class="modal-header">
heading
</div>
<div class="modal-body">
----
</div>
<div class="modal-footer">
<button type="button" class="btn btn-white" ng-click="cancel()">Close</button>
<button type="button" class="btn btn-primary" ng-click="submit_form()"><i class="fa fa-plus"></i>create method</button>
</div>
</div>
:控制器
function CreateCampaignCtrl($scope, $http){
$scope.submit_form = function(){
$http({
url: url,
data: {},
method: "POST",
headers: {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}
}).success(function(data){
$('#createModal').modal('hide');
alert(data);
}).error(function(err) { alert('ERROR err');})
}
};
};
上面的模式是在点击按钮发出ajax请求时打开的,现在我想在收到服务器的响应后动态关闭这个模式。
edit:
好吧,放弃我的第一个想法。它真的和一样简单
modalInstance.close()
我刚刚创建了一个2秒的暂停来模拟你的承诺。
$timeout(function(){modalInstance.close();},2000);
此处为plunker
最后我得到了在angularjs:中关闭UI引导弹出模式的解决方案
function getRetiredData($scope, $http, $modalStack){
$http({
url : base_url,
data : {},
method : "POST",
headers : {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}
}).success(function(data){
$modalStack.dismissAll();
}).error(function(err){
alert(err);
});
};
};
在您的控制器中注入$modalStack,并调用类似$modalStack.dessenAll()的函数;它关闭了所有打开的模态。