Перенаправление с помощью AngularJS
Я пытаюсь перенаправить на другой маршрут, используя:
$location.path("/route");
но почему-то не работает. Я сделал виджет автозаполнения с помощью jQuery-UI, и я вызываю функцию из области, как только пользователь выбирает опцию. Я отладил его, и он входит в функцию, но он никогда не перенаправляется на другой маршрут. Он только изменяет маршрут, когда я нажимаю клавишу.
Я думаю, что это немного странно, но я не понял, как решить эту проблему. Я используется
window.location = "#/route";
и это работает, но я хочу использовать
6 ответов:
С примером неработающего кода будет легко ответить на этот вопрос, но с этой информацией лучшее, что я могу думать, это то, что вы вызываете $location.путь за пределами в AngularJS дайджест.
попробуйте сделать это на директиву
scope.$apply(function() { $location.path("/route"); });
предполагая, что вы не используете маршрутизацию 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
самостоятельно, а второй-ждать, пока текстовое поле потеряет фокус.Регистрация этот вопрос; та же проблема, разные рамки.