最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Call a function periodically in angular - Stack Overflow

programmeradmin0浏览0评论

I have an angular controller which displays a backgroud image and text message. The controller is:

var myArchiveController = function($scope) {

     var setBackground = function() {
         $scope.backgroundUrl = someUrlFromService;
         $scope.backgroundMessage = someMessageFromService;
     }

     setBackground();
}

app.controller("myController", myController);

How can I call the setBackground() function periodically, e.g. every minute?

I have an angular controller which displays a backgroud image and text message. The controller is:

var myArchiveController = function($scope) {

     var setBackground = function() {
         $scope.backgroundUrl = someUrlFromService;
         $scope.backgroundMessage = someMessageFromService;
     }

     setBackground();
}

app.controller("myController", myController);

How can I call the setBackground() function periodically, e.g. every minute?

Share Improve this question asked Aug 24, 2016 at 10:59 GrahamGraham 1,5172 gold badges17 silver badges37 bronze badges 1
  • wrap setBackground with an $interval – deostroll Commented Aug 24, 2016 at 11:01
Add a ment  | 

2 Answers 2

Reset to default 8

Use angular $interval service:

var myArchiveController = function($scope, $interval) {

    var setBackground = function() {
        $scope.backgroundUrl = someUrlFromService;
        $scope.backgroundMessage = someMessageFromService;
    }

    $scope.intervalIstance = $interval(setBackground, 60000);
} 

To stop it Arbitrarily, use $interval.cancel.

$interval.cancel($scope.intervalIstance);

Don't forget to include $interval it in your dependencies.

The following should do it for you.

setInterval(setBackground, 60000);

or else, and the preferred approach, is to use angular's $interval service - $interval(setBackground, 60000);

You will need to inject the interval service ($interval) into the controller and then the code will be as follows:

var myArchiveController = function($scope, $interval) {

   //code here

    $interval(setBackground, 60000);
}
发布评论

评论列表(0)

  1. 暂无评论