一尘不染

AngularJS应用中的$ timeout未定义错误

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

我进入$timeout not defined了Javascript控制台。我没有正确注入服务的依赖项吗?


阅读 298

收藏
2020-07-04

共1个答案

一尘不染

您没有注射$timeout。应该如下。

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

这样声明可以确保在最小化JavaScript代码时正确识别服务。有关如何帮助缩小的更多信息,请参见关于缩小为缩小声明AngularJS模块的说明

如果您的计划中没有缩小功能(例如进行快速测试),则只需

app.factory('Position', function($timeout) {
    ...
});
2020-07-04