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

标签 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。我没有正确注入(inject)服务的依赖项吗?

最佳答案

您没有注入(inject) $timeout。应该是这样的。

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

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

如果缩小不在您的计划中(例如为了快速测试),您可以直接使用

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

关于javascript - AngularJS 应用程序中 $timeout 未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19009370/

相关文章:

javascript - 使用id获取元素问题

javascript - 当选择 “radio buttons” 的一个选项时如何禁用其他选项?

javascript - 为什么以下函数没有选择该指令内的所有复选框?

javascript - Angular JS ng-repeat 无法使用 PHP 数组获取输出

javascript - 在 Windows 7 上安装 contextify 错误 : `gyp` failed with exit code: 2

javascript - 在 asp.net 中将隐藏值传递给 JavaScript 时出错

javascript - Three.js - 如何旋转对象以注视一个点并朝向另一个点

angularjs - POSTing 到 REST Framework 时,Django 抛出列不能为空错误

angularjs - AngularJS 中的单元测试 promise 错误 : Expected a spy, 但得到了 getCtrl({ })

javascript - 在 Angular js 中使用 ng-repeat 指令在表中显示数组数据