javascript - 单击 HTML 元素时停止 AngularJS 自动刷新

标签 javascript jquery html angularjs

我的代码基于这篇文章 AngularJS ngcontroller to be reloading data periodically每 3 秒重新加载一次数据。

我现在的问题是,当我单击某些内容时,我想停止自动刷新。之后,自动刷新将再次开始。

例如,当我单击停止按钮时,自动刷新将停止。当我单击“开始”按钮时,它将每 3 秒再次开始获取数据。

这是我的js

var newsfeed = angular.module('newsfeed',[]);

newsfeed.controller('newsfeedController',function($scope,$http){
     var getPosts = function(){
        $http.get('http://localhost/must_sns/main/all_status').success(function(data){
                $scope.posts = data;
                console.log(data);
        }); 
    }
    getPosts();
    setInterval(getPosts, 3000);
});

最佳答案

您将使用clearInterval函数:

newsfeed.controller('newsfeedController', function($scope, $http) {

    var interval;

    function getPosts() {
        $http.get('http://localhost/must_sns/main/all_status').success(function(data) {
            $scope.posts = data;
            console.log(data);
        });
    }

    $scope.start = function() {
        interval = setInterval(getPosts, 3000);
    };

    $scope.stop = function() {
        clearInterval(interval);
    };

    // Start loading
    $scope.start();

});

现在在 HTML 中您可以使用 start/stop 方法:

<button ng-click="start()">Start</button>
<button ng-click="stop()">Stop</button>

关于javascript - 单击 HTML 元素时停止 AngularJS 自动刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26237198/

相关文章:

javascript - 弹出编辑更新/取消后剑道网格重新定位

javascript - 如何使用 Rangy 选择文本节点?

jquery - 将数据关联到 jQuery 的 DOM 元素

javascript - 使用 jquery 即时加载图像

javascript - jQuery 语法荧光笔不工作

html - 条件 CSS 无法正常工作?

html - 将按钮放在相对于该背景的背景之上

javascript - 如何使用抛物线方程绘制图形

javascript - jQuery 和 margin : 0 auto

javascript - 为什么自动完成会删除文本框图像