setInterval仅在屏幕上的某些操作上被调用

时间:2015-05-29 09:21:44

标签: javascript angularjs

我正在加载一个URL,如果URL无效,一旦页面加载,我想显示一条错误消息。

我在验证URL的函数上设置了1秒的间隔。但是,只有在我点击空白屏幕时才会显示消息。

请在加载网址后尽快加载邮件。

这是我的代码:

timer = setInterval(function() {
    $scope.ValidateUrl();
}, 1000);

2 个答案:

答案 0 :(得分:1)

我猜你需要告诉角度检查范围是否有变化。因此,如果您在angular js app内使用原生js方法,则角度不会跟踪它所应用的更改。

您必须通过$apply(fn)告诉angular跟踪当前范围的变化:

$scope.$apply(function(){ 
     return $scope.ValidateUrl();
});

答案 1 :(得分:0)

由于您正在使用javascript函数setInterval,因此摘要周期未运行,您应该使用$interval$interval中的wrap函数将在运行函数后运行摘要周期。

<强>代码

timer = $interval(function() {
    $scope.ValidateUrl();
}, 1000);