我目前正在研究在模态窗口中打开指令的按钮的功能,并且我想创建简单的功能是可能的,所以我采用了模态容器并用与指令标记它:
<div ng-if="vm.Modal.Modal1">
<directive-for-modal-one params="vm.params1"><directive-for-modal-one>
</div>
<div ng-if="vm.Modal.Modal2">
<directive-for-modal-two params="vm.params2"><directive-for-modal-two>
</div>
....
在 Controller 中,有一个函数可以更改所有该模态的事件,vm.Modal.n
function test(name){
CloseModal();
vm.Modals[name]= true
}
function CloseModal() {
for (var property in vm.Modals) {
vm.Modals[property]= false;
}
}
问题在于,如果您单击打开同一个模态两次,即使 ng-if 的值都为 false,并且在该值为 true 后,重新打开的模态是旧模态,不会被破坏。我知道发生这种情况是因为 javascript 是单线程,虽然它是函数,但它不会关闭,当我仍在函数内时,当这个值发生更改时,如何进行 Angular 检查。某种刷新或检查命令?
最佳答案
您可以尝试将逻辑放在 $scope.$evalAsync
中的 CloseModal() 之后。
CloseModal();
$scope.$evalAsync(function(){
vm.Modals[name]= true
})
这将要求代码在当前 $digest() 之后执行
关于javascript - ngif什么时候触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38478968/