【问题标题】:Angular Bootstrap modal not returning to the parent windowAngular Bootstrap 模态不返回父窗口
【发布时间】:2015-12-28 04:39:47
【问题描述】:

我有一个 Angular 引导模式。当用户在模态框上单击“确定”时,我调用了一个角度函数,该函数可以正常工作,它会根据需要返回,因为我可以看到屏幕在模态框后面刷新,但控件没有返回给父级

这里是模态

<div class="modal-content">
  <div class="modal-body">
    <h4 class="modal-title">Are you sure?</h4>
  </div>
  <div class="modal-footer">
    <button type="button" class="btn btn-info"
            data-dismiss="modal" ng-click="acknowledge(details.id)">Ok</button>
    <button type="button" class="btn btn-info"
            data-dismiss="modal">Cancel</button>
  </div>
</div>

这是角度函数

$scope.acknowledge = function(jobId) {
    var jobId = {
        'jobId' : jobId,
        'userID' : $scope.user
    };
    var jobDetail = $resource('modifyJobDetail', jobId);
    $scope.jobInfo = jobDetail.query().$promise.then(function(resp) {
        $scope.refreshJobDetail();
    });
}

$scope.refreshJobDetail = function() {
    var users = $resource('refreshJobDetail');
    $scope.detail = [];
    $scope.userinfo = users.query().$promise.then(function(response) {
        $scope.detail = response;
        return angular.copy($scope.detail); 
    });
}

我可以在我的窗口中看到刷新的字段,但控件没有返回到父窗口。

【问题讨论】:

  • 我删除了 data-dismiss 并在我的角度函数 acknowledge() 的末尾添加了 $uibModalInstance.close() ,如下所示,但没有工作。我已经注入了'ui.bootstrap'..我有什么遗漏吗? $scope.acknowledge = function(jobId) { var jobId = { 'jobId' : jobId, 'userID' : $scope.user }; var jobDetail = $resource('modifyJobDetail', jobId); $scope.jobInfo = jobDetail.query().$promise.then(function(resp) { $scope.refreshJobDetail(); }); $uibModalInstance.close(); };
  • 还要检查您正在使用的 angular-ui-bootstrap 的版本。当前版本是 1.4.8,下面的示例使用与 1.4.7 不兼容的版本。

标签: javascript angularjs angular-ui-bootstrap


【解决方案1】:

我已在 Plunker 中修改了您的代码,但我已将 $uibModal.open() 返回的承诺存储在控制器范围内,因此我可以在需要时关闭它:

$scope.openModal = function() {
    $scope.modalInstance = $uibModal.open({
      animation: $scope.animationsEnabled,
      templateUrl: 'my-modal.html',
      size: 'lg',
      scope: $scope,
      resolve: {
        items: function() {
          return $scope.items;
        }
      }
    });
  }

...

$scope.modalInstance.close();

【讨论】:

  • 模式正在关闭,但我的意思是页面有点卡在两者之间,不确定原因。我在第一篇文章中添加了一张图片
  • 只是为了更好地理解,如果将backdrop: false 添加到$uibModal.open() 选项,行为是否相同?
  • 我使用的是下面的引导模式,而不是你提到的那个
  • 这是代码 sn-p 如果它可以提供有关 Angular 部分的想法。 $scope.saveFile = function(jobID) { var formData = new FormData(); var 文件 = this.myFile; var serviceURL = 'saveAttachment'; fileUpload.uploadFileToURL(file, serviceURL, jobID); // 它调用一个指令 $scope.refreshJobDetail(); // 它调用另一个函数来刷新视图 }
  • 对不起,我不明白这段代码在哪里使用......以及它与模态有什么关系......
猜你喜欢
相关资源
最近更新 更多
热门标签