2017-05-06 77 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,我刪除了)。