Я пытаюсь перенаправить на другой маршрут, используя:
$location.path("/route");
Но почему-то не работает. Я создал виджет с автозаполнением, используя jQuery-UI, и я вызываю функцию из области видимости, когда пользователь выбирает вариант. Я отлаживал его, и он входит в функцию, но никогда не перенаправляется на другой маршрут. Он меняет маршрут только тогда, когда я нажимаю клавишу.
Я думаю, что это немного странно, но я не понял, как это решить. я использовал
window.location = "#/route";
и он работает, но я хочу использовать эту path()
функцию.
Кто-нибудь знает, почему это происходит?
Не забудьте ввести
$location
в контроллер.источник
Предполагая, что вы не используете маршрутизацию html5, попробуйте
$location.path("route")
. Это перенаправит ваш браузер на#/route
то, что вы хотите.источник
Если вам нужно перенаправить из вашего приложения angular, используйте
$window.location
. Это был мой случай; надеюсь, кому-то это будет полезно.источник
Проверьте свой метод маршрутизации:
если ваше состояние маршрутизации такое
.state('app.register', { url: '/register', views: { 'menuContent': { templateUrl: 'templates/register.html', } } })
тогда вы должны использовать
$location.path("/app/register");
источник
Трудно сказать, не зная вашего кода. Я предполагаю, что
onchange
событие не запускается, когда вы меняете значение текстового поля из кода JavaScript.Это может работать двумя способами; первый - вызвать
onchange
самостоятельно, а второй - дождаться, пока текстовое поле потеряет фокус.Отметьте этот вопрос ; та же проблема, разные рамки.
источник