46

我有以下代码:

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 控制台。我没有正确注入服务的依赖关系吗?

4

1 回答 1

91

你没有注入$timeout。应该如下。

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

以这种方式声明可确保在您的 JavaScript 代码被缩小时正确识别服务。有关这如何帮助缩小的更多信息,请参阅关于缩小声明 AngularJS 模块进行缩小的说明

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

app.factory('Position', function($timeout) {
    ...
});
于 2013-09-25T15:42:48.187 回答