Rit*_*ita 27 javascript angularjs
我使用下面的代码,在laravel刀片
<div ng-show="displayErrorMsg" class="form-group m-b alert alert-danger">{{errorMsg}}
Run Code Online (Sandbox Code Playgroud)
在angularjs控制器中
$scope.errorMsg = "Data Empty";
$scope.displayErrorMsg = true;
setTimeout(function() { $scope.displayErrorMsg = false;}, 2000);
Run Code Online (Sandbox Code Playgroud)
消息在2秒后自动消失,如给定的那样.
但是当我简单地说出警告("测试"); 或点击任何地方消息消失.如何解决这个问题?
ctr*_* f5 45
只需注入$timeout
您的控制器并使用它.
$timeout(function() { $scope.displayErrorMsg = false;}, 2000);
Run Code Online (Sandbox Code Playgroud)
您也可以使用$ digest或$ apply,如下所示
setTimeout(function() {
$scope.displayErrorMsg = false;
$scope.$digest();
}, 2000);
setTimeout(function () {
$scope.$apply(function(){
$scope.displayErrorMsg = false;
});
}, 2000);
Run Code Online (Sandbox Code Playgroud)
检查这些是如何工作的,
http://www.sitepoint.com/understanding-angulars-apply-digest/
我通常需要一个功能,无论出于何种原因等待一点,仅用于测试目的.在Java中,我们可以使用Thread.sleep().但是,在JavaScript中我更喜欢使用我在这里找到的简单函数:
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
它在包括AngularJS在内的几种场景中一直在为我工作.但是,请记住,除非您确切知道自己在做什么,否则不应在生产环境中使用该功能.
归档时间: |
|
查看次数: |
85238 次 |
最近记录: |