AngularJS app中的$ timeout未定义错误

时间:2013-09-25 15:42:00

标签: javascript angularjs

我有以下代码:

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。我没有正确地注入服务的依赖吗?

1 个答案:

答案 0 :(得分:88)

你没有注射$timeout。它应该如下。

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

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

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

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