我有一个奇怪的问题,我希望我遗漏了一些明显的东西。“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();
};