$ location в $ timeout в AngularJS

0

У меня есть контроллер в AngularJS, с $ timeout и $ location в заголовке. Контроллер имеет следующий код:

$timeout(function () {
    $location.path("/nextview")}, 500, false)
}

Из-за асинхронного характера $ timeout, кажется, что $ location не передается и, следовательно, терпит неудачу. Если я ставлю $ location как часть аргументов функции, это все равно не работает.

$timeout(function ($location) {
    $location.path("/nextview")}, 500, false)
}

Однако, если у меня есть только ниже, он работает:

    $location.path("/nextview")};

Мне действительно нужен какой-то тайм-аут, так как код перед изменением местоположения должен дать пользователю визуальный сигнал. Если местоположение немедленно изменяется, визуальной метки нет.

Есть ли лучший способ сделать паузу или сон, может быть, синхронно? Заранее спасибо

Теги:
location
timeout

1 ответ

0
Лучший ответ

Попробуйте сделать это так

$timeout(function() {
    $scope.$apply(function() {
        $location.path("/nextview");
    });
}, 2000);

Если это не сработает, проверьте консоль на наличие ошибок.

  • 0
    Это работает! Бесконечно благодарен! : D

Ещё вопросы

Сообщество Overcoder
Наверх
Меню