gpt4 book ai didi

angularjs - 我可以在服务中使用 $interval 吗?

转载 作者:行者123 更新时间:2023-12-05 00:25:43 25 4
gpt4 key购买 nike

简短版本:请回复标题。谢谢你的帮助。

更长的版本:我开始时,就像我想许多 n00bs 所做的那样,用一点代码,一点一点地添加了一些,然后发现自己在一个巨大的 Controller 中拥有所有东西。

因此,我拆分了我的功能并拥有了一堆较小的 Controller 。

然后我希望他们相互交流,我发现了服务。

然后我读到 Controller 应该是精益和平均的,我开始将大量逻辑从 Controller 转移到服务。

现在我发现一些旧的代码,它读$scope.internetConnectionRetryTimer = $interval($scope.attemptInternetConnection, RECONNECT_ATTEMPT_FREQUENCY);
当进入服务时this.internetConnectionRetryTimer = $interval(this.attemptInternetConnection, RECONNECT_ATTEMPT_FREQUENCY);似乎没有运行计时器;要么在到期时不调用该函数。

与简短版本相同的问题:我实际上可以在服务中使用 $interval 吗?

[更新]这是代码:

全局变量 SERVER 是一个 URL,变量 RECONNECT_ATTEMPT_FREQUENCY = 5 * 1000;//5秒

   this.attemptInternetConnection = function()
{
$interval.cancel(this.internetConnectionRetryTimer);

var params = '?action=test_connection&user=dummy';

$http.get(SERVER + params).
success(function()
{
$interval.cancel(this.internetConnectionRetryTimer);
$rootScope.$broadcast('internetIsAvailable');
})
.error(function(status)
{
this.internetConnectionRetryTimer = $interval(this.attemptInternetConnection, RECONNECT_ATTEMPT_FREQUENCY);
$rootScope.$broadcast('internetIsUnavailable');
});
};// attemptInternetConnection()

最佳答案

没有问题。
下面是一个例子:

<div ng-app="myApp" ng-controller="myCtrl">{{Data.Test}}</div>

angular.module('myApp', []).
controller('myCtrl', function ($scope, myService) {
$scope.Data = {Test: 'Test'};
myService.ChangeTest($scope.Data);
}).
service('myService', function ($interval) {
this.ChangeTest = function (data) {
$interval(function () {
if (data.Test == 'Test') data.Test = 'Changed Test';
else data.Test = 'Test';
},500);
}
});

这是一个 Fiddle .

关于angularjs - 我可以在服务中使用 $interval 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24051455/

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