如何解除角度模态

时间:2014-10-14 07:13:10

标签: angularjs

我正在使用Ekathuwa模式,我需要在成功的Ajax PUT之后关闭它。我试图按照他们给出的例子。我可以关闭模​​态,但屏幕上仍然有灰色。喜欢它还在后台打开吗?我仍然需要刷新页面才能消失。

$scope.updateJob = function (job) {
    console.log($scope.currentItem);
    job.JobTypeId = $scope.currentItem.JobType.JobTypeId;
    job.JobClassId = $scope.currentItem.JobClass.JobClassId;
    job.GeoAreaId = $scope.currentItem.GeoArea.GeoAreaId;
    jobFactory.updateJob(job).success(successCallback)
        .error(errorCallback);
    console.log(job);
    var p = $ekathuwa.modal({
        id: "EditJobModal", contentStyle: "width:800px;heigth:400px",
        scope: $scope,
        templateURL: "views/modals/EditJobModal.html"
    });
    $q.when(p).then(function (m) {
        m.modal('hide');
    });
};
var successCallback = function (data, status, headers, config) {
    notificationFactory.success();
};
var errorCallback = function (job, status, headers, config) {
    notificationFactory.error(job.ExceptionMessage);
};

2 个答案:

答案 0 :(得分:1)

将隐藏模态逻辑移动到successCallback函数。

我不知道“views / modals / EditJobModal.html”或其他网页上的可修改字段。 如果它在EditJobModal.html上,最好使用两个函数,一个用于创建,另一个用于更新逻辑。

感谢, 萨拉

更新

//Edit Job Modal
$scope.EditJobModal = function (id) {
    $.get('/api/apiJob/' + id, function (data) {
        console.log(data);
        $scope.currentItem = data;
        $scope.openEditJobModal =  $ekathuwa.modal({
            id: "EditJobModal", contentStyle: "width:800px;heigth:400px",
            scope: $scope,
            templateURL: "views/modals/EditJobModal.html"
        });
        //show modal window
        $scope.openEditJobModal.then(function (m) {
             m.modal('show');
         });
    });
}

 //Update Job 
$scope.updateJob = function (job) {
    console.log($scope.currentItem);
    job.JobTypeId = $scope.currentItem.JobType.JobTypeId;
    job.JobClassId = $scope.currentItem.JobClass.JobClassId;
    job.GeoAreaId = $scope.currentItem.GeoArea.GeoAreaId;
    jobFactory.updateJob(job).success(successCallback)
        .error(errorCallback);
    console.log(job);
 };
var successCallback = function (data, status, headers, config) {
     //hide modal window
     $scope.openEditJobModal.then(function (m) {
            m.modal('hide');
    });
    notificationFactory.success();
};
var errorCallback = function (job, status, headers, config) {
    notificationFactory.error(job.ExceptionMessage);
};

模态

<input type="submit" ng-click="updateJob(currentItem)" value="Submit" />
<input type="button" ng-if="true" data-dismiss="modal" value="Exit" />

答案 1 :(得分:0)

似乎是AngularUI中的一个错误。请参阅:https://github.com/angular-ui/bootstrap/issues/1643

在关闭或解雇时,模态范围未被正确销毁。