gpt4 book ai didi

angularjs - $interval 函数仅在 AngularJS 应用程序中调用一次

转载 作者:行者123 更新时间:2023-12-02 04:16:07 26 4
gpt4 key购买 nike

我正在尝试用 Angular 编写一个应用程序,该应用程序每 10 秒更新一次数据。我的问题是每次刷新页面时该函数仅被调用一次。

console.log 只是为了确保该函数仅被调用一次。

这是我用于启动间隔的代码:

var app = angular.module('myApp',['ngRoute', 'ui.bootstrap', 'ngNotify', 'ngTagsInput', 'djds4rce.angular-socialshare']);

app.run(function($FB, $http, $rootScope, $interval){
$FB.init('527807327395199');
$interval(function() {callAtInterval($http, $rootScope)}, 1000, true);
$rootScope.count = 0;
});


function callAtInterval($http, $rootScope) {
$http.get("/points-for-school")
.then(function(response){
$rootScope.schoolCompetitionPoints = response.data;
console.log($rootScope.count++);
console.log(response);
}, function(response){
console.error(response);
});
}

我在app.run方法中这样做有问题吗?

我是否必须将代码放入 Controller 才能工作?

如果有一种方法可以在不创建 Controller 的情况下完成这项工作,我会更喜欢它。

最佳答案

$interval()将函数作为参数,以便每 10 秒调用一次该函数。

但是您没有传递函数作为参数。您正在调用callAtInterval($http, $rootScope) ,并将此调用返回的值 ( undefined ) 传递给 $interval() 。因此,您实际上是在要求 $interval 调用 undefined每 10 秒一次。

你真正想要的是

$interval(function() {
callAtInterval($http, $rootScope);
}, 1000, true);

关于angularjs - $interval 函数仅在 AngularJS 应用程序中调用一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33653806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com