隐藏Angular Bootstrap模式而不是关闭

时间:2014-09-29 20:40:50

标签: javascript css angularjs twitter-bootstrap

我正在使用Angular Bootstrap Modal来打开一系列模态,包括

中的视频播放器

http://angular-ui.github.io/bootstrap/#/modal

即使模态已关闭,我也希望能够保持视频的位置。这就是下次我再次打开相同的模态时,我可以看到我在视频中停下的位置。

为了做到这一点,我需要做:

  1. 为每个模态创建一个单独的实例

  2. 而不是close(),我需要隐藏()模态。因此,DOM仍在那里,视频播放器无法重新创建

  3. 执行此操作的优雅方法是什么,因为Bootstrap模式没有隐藏功能。我应该只使用jQuery来显示/隐藏.modal-backdrop.modal类吗?

1 个答案:

答案 0 :(得分:0)

来自Don't destroy an Angular Bootstrap modal on close

  

为什么不将模态状态抽象为自己的服务?这样,无论何时创建模态控制器,它都会使用该服务在初始化时设置视图状态。

     

EG。创建服务

.factory('ModalStateService', function(){
    var state = {
        someValue: 'something'
    };

    return {
        getState: function() { return state; }
    };
});
  

然后在你的控制器中:

.controller('ModalCtrl', function($scope, ModalStateService){
    $scope.viewState = ModalStateService.getState();
});
  

然后在您的模态内容视图中,例如:

 <span>{{viewState.someValue}}</span>
  

如果您要在模式中设置someValue,请通过输入说明,服务状态将会更新。然后,当你创建并销毁你的模态时,状态将会持续存在。