Updates location path without reloading of controller
1 bower install angular-location-update --save
or download or include hosted from github.io
<script src="//anglibs.github.io/angular-location-update/angular-location-update.min.js"></script>
2 Add module to your app:
angular.module('your_app', ['ngLocationUpdate']);
$location.update_path('/notes/1');
$location.update_path('/notes/1/wysiwyg', true);
Parameters:
- New path
- Keep old path in browser history (By default it will be replaced by new one)
For example you have route /notes/new
which shows form for new note.
In modern web app you may have no "Save" button - note created and saved to database once user made any change.
Then you would like to change route to /notes/1
showing to user, that here is URL of his new document.
Also if he will refresh page or go back and forward using browser buttons - he will see what he expects.
Did you know, that you can easily change your URLs
from http://mysite.com/#/notes/1
to http://mysite.com/notes/1
For this:
- Config app:
angular.module('your_app').config(function($locationProvider) { $locationProvider.html5Mode(true); });
- Add in your HTML
<base href="/">
More info: https://docs.angularjs.org/guide/$location
Solution invented by guys in these threads: