2017-05-06 79 views
0

我使用$间隔重复每10秒一个函数,但当应用程序正在运行时,它返回我“类型错误:$间隔不是函数”。

这是代码:

app.controller("ctrl2", ["$scope", "$firebaseAuth", "HitService", 
"$location", "$ionicPopup", "sharedList", "$ionicLoading", "$ionicLoading", "$interval", 
    function ($scope, firebaseAuth, HitService, $location, $ionicPopup, sharedList, ionicLoading, $interval) { 

function aggiornaToken() { 
    var user = firebase.auth().currentUser; 
    console.log(user); 
    var token = user.refreshToken; 
    console.log(token); 
    //HitService.setToken(token); 
} 
$interval(aggiornaToken, 10000); 
+0

您注入了$ ionicLoading两次... – Alburkerk

+0

该死!最近我很分心:/非常感谢你。 –

回答

0

这只是一个关于dependency injections问题。

你可以看到排序对于Angular注入非常重要。

唯一的时间顺序是不相关的,是当你使用隐式注射,这通常是一个坏习惯,因为你不能再压缩,它使你的代码不太清楚,少可扩展性。

此外,您应该开始使用$ inject而不是使用内联数组注记。两者都有效,但Angular指导方针通常要求使用$注入。

app.controller("ctrl2", ctrl2Function); 

ctrl2Function.$inject = ["$scope", "$firebaseAuth", "HitService", "$location", "$ionicPopup", "sharedList", "$ionicLoading", "$interval"]; 

function ctrl2Function ($scope, firebaseAuth, HitService, $location, $ionicPopup, 
sharedList, ionicLoading, $interval) { 
} 

(请注意,您注射两次ionicLoading,我删除了)。