Ошибка $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. Действительно ли я неправильно ввожу зависимость службы?

Ответ 1

Вы не вводили $timeout. Он должен быть следующим.

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

Декларация таким образом гарантирует, что службы будут правильно идентифицированы, когда ваш код JavaScript будет оценен. Для получения дополнительной информации о том, как это помогает минимизации, см. "Замечание по минимизации" и Объявление Модули AngularJS для минимизации

Если в ваших планах не указано минимализация (например, для быстрого теста), вы можете просто пойти с

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