Javascript AngularJS模态异步关闭不';行不通
我正在创建一个模式,并在数据进入后台后关闭它Javascript AngularJS模态异步关闭不';行不通,javascript,angularjs,angular-bootstrap,Javascript,Angularjs,Angular Bootstrap,我正在创建一个模式,并在数据进入后台后关闭它 var modal = modal.open({..some params..}); //after data loads modal.close(); 因此,我的问题是,由于所有内容都是异步的,如果我的数据是瞬时出现的,那么在模态完全打开之前,我的modal.close()就会执行,然后我的屏幕仍然与模态屏幕保持一致 我找到的一个解决方案是向modal.close添加超时 $timeout(function() { modal.close()
var modal = modal.open({..some params..});
//after data loads
modal.close();
因此,我的问题是,由于所有内容都是异步的,如果我的数据是瞬时出现的,那么在模态完全打开之前,我的modal.close()就会执行,然后我的屏幕仍然与模态屏幕保持一致
我找到的一个解决方案是向modal.close添加超时
$timeout(function() {
modal.close();
}, 1)
这是可行的,但这是正确的方法吗?或者还有其他更好的解决方案?模态实例上有一个
已打开的
承诺,您应该使用它来保证模态在尝试关闭之前已完成打开。发件人:
opened
-在下载内容模板并解析所有变量后打开模式时解析的承诺
呈现
-呈现模式时解决的承诺
将它与您的HTTP请求混合在一起可能看起来像
modal = $modal.open({...})
$http.get(...).then(function(response) {
modal.opened.then(modal.close)
})
以下是您当前使用的方法和使用打开的进行操作的方法
$scope.open = ->
modalInstance = $modal.open(
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl'
)
if $scope.work
modalInstance.opened.then(->
modalInstance.close()
)
else
modalInstance.close()
你是如何得到数据的?如果使用angular$http服务,您可以使用返回的promise对象上的成功/错误来广播消息,然后您的控制器可以对其进行操作……我从已缓存数据的缓存服务获取数据!这种模式的目的是什么?