【问题标题】:$timeout not defined error in AngularJS appAngularJS 应用程序中的 $timeout 未定义错误
【发布时间】:2013-09-25 15:42:00
【问题描述】:

我有以下代码:

app.factory('Position', ['$timeout', function() {

    var position = {
        latitude: 44,
        longitude: 26
    };

    console.log("Timeout started");

    $timeout(function() {
        position.latitude += 15;
        position.longitude += 15;
    }, 2000);

    return position;
}]);

我在 Javascript 控制台中得到 $timeout not defined。我没有正确注入服务的依赖吗?

【问题讨论】:

  • 仅相关:如果您有构建过程,尤其是使用 Grunt 的构建过程,您应该查看ngmin。它将使您的注射器缩小安全并消除双重打字的负担。您只需要function($timeout)

标签: javascript angularjs


【解决方案1】:

你没有注入$timeout。应该是这样的。

app.factory('Position', ['$timeout', function($timeout) {
    ...
}]);

以这种方式声明可确保在缩小 JavaScript 代码时正确识别服务。有关这如何帮助缩小的更多信息,请参阅 A Note on MinificationDeclaring AngularJS Modules For Minification

如果缩小不在您的计划中(例如用于快速测试),您可以直接使用

app.factory('Position', function($timeout) {
    ...
});

【讨论】:

  • 我相信使用内置服务(任何带有 $ 的东西)你可以把它们放在函数 sig 中,你不必在依赖项中声明它们。如果您只使用 $ 服务。
  • 我认为这样做是为了缩小目的docs.angularjs.org/tutorial/step_05
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-14
  • 1970-01-01
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
相关资源
最近更新 更多