Ser*_*nio 8 javascript angularjs sweetalert sweetalert2
问题:
我想在甜蜜警报上单击"确定"后将用户重定向到另一个页面,但是在我出于某种原因打开另一个甜蜜警报之前,用户不会被重定向.
您可以在代码上断点,但页面上没有任何反应.
问题的简单例子:http://jsfiddle.net/ADukg/14306/
注意:包括0秒超时"解决问题"
重现:
1)注意箭头后面的文字.. $ scope.name ="original",你可以看到它显示在页面上.
2)单击"单击第一个"按钮.这运行函数$ scope.changeMe(),它将$ scope.name更新为"delayed ......."
3)到现在为止,按钮上方的文本应该已经更改.但是直到你打开另一个甜蜜的警报,文本才真正改变
4)点击"然后在这里"或"点击第一个"按钮,弹出另一个甜蜜警报,DOM将最终改变.
我很确定这与AngularJS有某种关系,必须使用1.4.3.
有任何想法吗?
HTML:
<div ng-controller="MyCtrl">
<div>
<button ng-click="changeMe()">click first</button>
<button ng-click="decoy()">then here</button>
</div>
<div>
<button ng-click="reset()">reset text</button>
<div>
</div>
Run Code Online (Sandbox Code Playgroud)
JS:
var myApp = angular.module('myApp',[]);
myApp.controller("MyCtrl", function($scope, $timeout) {
$scope.name = 'original';
$scope.copy = angular.copy($scope.name);
$scope.changeMe = function() {
swal("Text should change now")
// runs on hitting "OK"
.then(function() {
// UNCOMMENT THIS and re-run the fiddle to show expected behavior
// $timeout(function() { $scope.displayErrorMsg = false; }, 0);
$scope.name = 'delayed.......'
})
}
$scope.decoy = function() {
swal("Look at the text now");
}
$scope.reset = function() {
$scope.name = $scope.copy;
}
})
Run Code Online (Sandbox Code Playgroud)
我发现你的小提琴有一些问题
1)swal不是一个角度库。因此它不会与角度摘要周期一起工作,这就是为什么它仅在调用 $timeout 后才起作用。 本教程解释了原因以及如何修复它。
2)我看到您已添加ng sweet Alert作为依赖项,但它是在 Angular 之前调用的,因此它不会在您的小提琴中注册,并且存在控制台错误。
3)如果您尝试使用 ng-sweet-alert,它不会使用此语法。您需要首先将其包含在依赖项中
var myApp = angular.module('myApp',['oitozero.ngSweetAlert']);
Run Code Online (Sandbox Code Playgroud)
它不返回承诺,需要以不同的方式调用。
SweetAlert.swal("Here's a message");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |