使用jquery,如何在Angularjs中动态关闭弹出模式(ui bootstrap)而不发生点击事件



:模式

<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()的函数;它关闭了所有打开的模态。

最新更新