Modifier les paramètres de la route sans mettre à jour la vue
Je suis en train d'essayer de comprendre comment modifier les paramètres de l'itinéraire sans recharger la page entière. Par exemple, si je commence à
mais la mise à jour d'un nom 'George', de changer l'itinéraire à:
http://www.example.com/#/page/george
Si j'ai déjà eu http://www.example.com/#/page/:name de routage.
Sans rechargement de l'emplacement. Peut-on juste valeur $routeParams.nom = "George" ?
Edit:
Sinon, est-il un moyen de mettre à jour http://www.example.com/#/page?name=George sans recharger ou la réinitialisation de la page?
Vous devez vous connecter pour publier un commentaire.
Ok, après beaucoup de recherche. J'ai répondu à ma propre question.
J'ai découvert de trouver quoi que ce soit sur l'angle de la documentation est incroyablement impossible, mais parfois, une fois qu'il est trouvé, il modifie la façon dont vous pensez au sujet de votre problème.
J'ai commencé ici: http://docs.angularjs.org/api/ng.$emplacement
Ce qui m'a pris ici: http://docs.angularjs.org/guide/dev_guide.services.$emplacement
Ce qui m'a pris à cette question: AngularJS Pagination avec $lieu.chemin d'accès, mais pas de ngView recharger
Ce que j'ai fait:
J'ai ajouté
$location.search({name: 'George'});
À l'endroit où je voulais changer le nom du (Des $scope.$watch).Cependant, cela va recharger la page, sauf si vous faites ce qui est en bas à StackOverflow lien et ajouter un paramètre à l'objet que vous passer dans
$routeProvider.when
. Dans mon cas, ça ressemblait à:$routeProvider.when('/page', {controller: 'MyCtrl', templateUrl:'path/to/template', reloadOnSearch:false})
.J'espère que cela sauve quelqu'un d'autre un mal de tête.
$location.path()
qui est un getter et setter.$location.path()
?J'ai effectivement trouvé une solution que je trouve un peu plus élégant pour mon application.
L' $locationChangeSuccess événement est un peu une approche par force brute, mais j'ai trouvé que la vérification du chemin nous permet d'éviter la page est rechargée lorsque la voie de chemin de modèle est inchangé, mais la recharge de la page lors de la commutation d'une route différente de modèle:
L'ajout du code à un contrôleur permet le rechargement de plus en plus intelligents.
Vous pouvez modifier l'affichage de la page à l'aide de ng-show et ng-hide, ces transitions ne pas recharger la page. Mais je pense que le problème que vous essayez de résoudre est que vous voulez être en mesure de créer un signet de la page, être en mesure de rafraîchissement de presse et d'obtenir la page que vous souhaitez.
Je vous suggère de mettre en œuvre angulaire de l'interface utilisateur du routeur Qui est excellent pour la commutation entre les états, sans avoir à recharger la page. Le seul inconvénient est que vous devez changer tous vos itinéraires.
Découvrez-le ici il y a une grande démonstration.