gpt4 book ai didi

javascript - ngif什么时候触发?

转载 作者:行者123 更新时间:2023-12-03 06:30:18 25 4
gpt4 key购买 nike

我目前正在研究在模态窗口中打开指令的按钮的功能,并且我想创建简单的功能是可能的,所以我采用了模态容器并用与指令标记它:

<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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com