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

我有以下代码:

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

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

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

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

如果缩小不在你的计划(如快速testing),你可以简单地去

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