我正在使用Angular Bootstrap Modal来打开一系列模态,包括
中的视频播放器http://angular-ui.github.io/bootstrap/#/modal
即使模态已关闭,我也希望能够保持视频的位置。这就是下次我再次打开相同的模态时,我可以看到我在视频中停下的位置。
为了做到这一点,我需要做:
为每个模态创建一个单独的实例
而不是close(),我需要隐藏()模态。因此,DOM仍在那里,视频播放器无法重新创建
执行此操作的优雅方法是什么,因为Bootstrap模式没有隐藏功能。我应该只使用jQuery来显示/隐藏.modal-backdrop
和.modal
类吗?
答案 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
,请通过输入说明,服务状态将会更新。然后,当你创建并销毁你的模态时,状态将会持续存在。