Перенаправление с помощью AngularJS


Я пытаюсь перенаправить на другой маршрут, используя:

$location.path("/route");

но почему-то не работает. Я сделал виджет автозаполнения с помощью jQuery-UI, и я вызываю функцию из области, как только пользователь выбирает опцию. Я отладил его, и он входит в функцию, но он никогда не перенаправляется на другой маршрут. Он только изменяет маршрут, когда я нажимаю клавишу.

Я думаю, что это немного странно, но я не понял, как решить эту проблему. Я используется

window.location = "#/route";

и это работает, но я хочу использовать

6 86

6 ответов:

С примером неработающего кода будет легко ответить на этот вопрос, но с этой информацией лучшее, что я могу думать, это то, что вы вызываете $location.путь за пределами в AngularJS дайджест.

попробуйте сделать это на директиву scope.$apply(function() { $location.path("/route"); });

Не забудьте ввести $location в контроллер.

предполагая, что вы не используете маршрутизацию html5, попробуйте $location.path("route"). Это перенаправит Ваш браузер на #/route что может быть то, что вы хотите.

Если вам нужно перенаправить из вашего углового использовании приложение $window.location. Это был мой случай, надеюсь, что кто-то найдет его полезным.

проверьте свой метод маршрутизации:

Если ваше состояние маршрутизации таково

 .state('app.register', {
    url: '/register',
    views: {
      'menuContent': {
        templateUrl: 'templates/register.html',
      }
    }
  }) 

затем вы должны использовать

$location.path("/app/register");

трудно сказать, не зная ваш код. Мое лучшее предположение, что onchange событие не запускается при изменении значения текстового поля из кода JavaScript.

есть два способа для этого работать; первый-это позвонить onchange самостоятельно, а второй-ждать, пока текстовое поле потеряет фокус.

Регистрация этот вопрос; та же проблема, разные рамки.