J'essaye de rediriger vers une autre route en utilisant:
$location.path("/route");
Mais pour une raison quelconque, cela ne fonctionne pas. J'ai créé un widget de saisie semi-automatique à l'aide de jQuery-UI et j'appelle une fonction à partir de la portée une fois que l'utilisateur sélectionne une option. Je l'ai débogué et il entre dans la fonction mais il n'est jamais redirigé vers l'autre route. Cela ne change l'itinéraire que lorsque j'appuie sur une touche.
Je pense que c'est un peu étrange mais je n'ai pas trouvé comment résoudre ce problème. j'ai utilisé
window.location = "#/route";
et ça marche mais je veux utiliser la path()
fonction.
Quelqu'un a-t-il une idée de pourquoi cela se produit?
N'oubliez pas d'injecter
$location
dans le contrôleur.la source
En supposant que vous n'utilisez pas le routage html5, essayez
$location.path("route")
. Cela redirigera votre navigateur vers#/route
lequel pourrait être ce que vous voulez.la source
Si vous avez besoin de rediriger hors de votre application angulaire, utilisez
$window.location
. C'était mon cas; j'espère que quelqu'un le trouvera utile.la source
Vérifiez votre méthode de routage:
si votre état de routage est comme ça
.state('app.register', { url: '/register', views: { 'menuContent': { templateUrl: 'templates/register.html', } } })
alors vous devriez utiliser
$location.path("/app/register");
la source
C'est difficile à dire sans connaître votre code. Ma meilleure supposition est que l'
onchange
événement ne se déclenche pas lorsque vous modifiez la valeur de votre zone de texte à partir du code JavaScript.Il y a deux façons pour cela de fonctionner; la première consiste à appeler
onchange
par vous-même et la seconde à attendre que la zone de texte perde le focus.Vérifiez cette question ; même problème, cadre différent.
la source