【问题标题】:Angular-Ionic $interval is not a functionAngular-Ionic $interval 不是函数
【发布时间】:2017-05-07 02:51:29
【问题描述】:

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

这是代码:

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);

【问题讨论】:

  • 你注入了两次 $ionicLoading...
  • 该死!我最近很分心:/非常感谢。

标签: angularjs


【解决方案1】:

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

您可以看到 顺序对于 Angular 注入很重要。

唯一不相关的时间顺序是当您使用隐式注入时,这通常是一种不好的做法,因为您无法缩小,而且它会使您的代码不太清晰且可扩展性较差。

另外,你应该开始使用 $inject 而不是使用内联数组注解。两者都有效,但 Angular 指南通常要求使用 $inject。

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,而我将其删除)。

【讨论】:

    猜你喜欢
    • 2016-07-23
    • 2019-11-12
    • 2022-12-05
    • 2018-08-22
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多