2016-11-09 53 views
0

我使用下面的代码调用自举模式后,与屏幕进行互动,无法隐藏的引导模式

$scope.modalInstance = $modal.open({ 
       templateUrl: '/src/lvassets/owl/download/points.modal.php', 
       size: 'm', 
       controller: DownloadInstanceCtrl, 
       windowClass: "hmodal-info", 
       scope: $scope, 
       backdrop: 'static', 
       keyboard: false, 
       resolve: { 
        params: function() { 
         var vars = { 
          'qty': $scope.qty, 
          'code': $scope.shortCode, 
          'offset': $scope.offset, 
          'status': $scope.status 
         }; 
         return vars; 
        } 
       } 
      }); 

正如你可以看到我已经把“背景”属性“静态”和'键盘'改为'假',以防止用鼠标或键盘上的'esc'键关闭模式。这种模式显示进度条以及关于下载过程的一些细节,并且取决于用户输入,可能需要几分钟才能关闭下载过程。所以我添加了一个按钮,用户可以选择“在后台下载”,这将关闭模式。我用下面的代码,

$(".inmodal").hide(); 
$('body').removeClass('modal-open'); 
$('.modal-backdrop').hide(); 

一旦过程,我重新打开它通过这个代码包含一些后续细节模态屏幕背景完成,

$(".inmodal").show(); 
$('body').addClass('modal-open'); 
$('.modal-backdrop').show(); 

上面的代码隐藏模式并移除“有色”屏幕和用户,以便用户可以查看屏幕,通过它滚动并阅读详细信息但是用户不能与屏幕交互,即他/她不能点击链接或按钮。

有没有办法解决这个问题? 在此先感谢。

+1

为什么你不使用关闭模式的标准方法('$''inmodal')。modal('hide')'? – isherwood

+0

@isherwood我忘记提及,但是因为一旦下载过程完成,我想要重新打开相同的模式,用户可以选择他们想要下载的记录类型,然后单击“立即下载”按钮下载它 –

+1

我回过头来看,你正在使用Angular,你不应该在写jQuery所有。http://stackoverflow.com/questions/14994391/thinking-in-angularjs-if-i-have-a-jquery-background – isherwood

回答

0

假设你应该是使用jQuery为您的网站,当引导模式最初打开时,它适用于一类.modal-open<body>标签,该标签与禁止什么,但通道交互(见docs)。你只是使用jQuery的standarad hide功能隐藏模式。您需要使用$('.inmodal').modal('hide');,以便模式显示的模态和所有其他功能回到原始状态。

+0

它确实隐藏了模式,但我仍然无法点击任何链接或当模式被隐藏时按钮 –