AngularJS app中的$ timeout未定义错误

Rad*_*scu 45 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;
}]);
Run Code Online (Sandbox Code Playgroud)

我进入$timeout not definedJavascript控制台.我没有正确地注入服务的依赖吗?

kub*_*ntu 88

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

app.factory('Position', ['$timeout', function($timeout) {
    ...
}]);
Run Code Online (Sandbox Code Playgroud)

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

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

app.factory('Position', function($timeout) {
    ...
});
Run Code Online (Sandbox Code Playgroud)

  • 我相信内置服务(带有$的任何东西)你可以把它们放在函数sig中,你不必在依赖项中声明它们.如果您只使用$服务. (3认同)
  • 我认为这样做是为了缩小目的http://docs.angularjs.org/tutorial/step_05 (2认同)