0

我有一个奇怪的问题,我希望我遗漏了一些明显的东西。“Sweet Alert”只是弹出一个更漂亮的角度模态 -isConfimed当您单击模态上的“确定”时,该块执行。

这是问题所在 - 我放入“isConfirmed”块执行中的任何代码 - 我可以记录它等,但它不会更新范围。例如,如果我有 $scope.test 并在块中更改它然后记录它,日志将显示它已更改,但更改不会反映在 UI 上。我尝试了应用/摘要,但它告诉我应用/摘要已经在运行。

有趣的是,代码在块外运行完美(在底部注释掉示例)。有什么好笑的?承诺是用于测试的——它没有帮助。我认为它没有看到范围,所以我尝试在 rootScope 上广播,也无济于事。

我完全不知所措。

编辑:我刚刚发现,如果我将代码置于超时状态,它就会起作用。什么#@!@。

$scope.showAlert = function(){
    var deferred = $q.defer();
    SweetAlert.swal({
            text: 'Warning, click ok or else!!!',
            otherSettings: 'blah blah blah',
            function(userClickedOk){
                if(userClickedOk) {
                    //this executes when I click "Ok on pop-up")
                    //Putting code here without a promise doesn't update view model either, promise didn't help.
                    deferred.resolve(true);
                    return deferred.promise;
                }
            }
        });

        deferred.promise.then(function() {
           //If I put doSomething() in $timeout, it works...
           $scope.doSomething();
        });
    });

//If I put doSomething() here instead of the promise, it works
//$scope.doSomething();
};
4

0 回答 0