Named route support for angular-route. Name your routes so you don't have to copy-paste-replace URLs everywhere. Automatically prefixes <base />
href so that all links created work in HTML 5 mode.
angular.module('myapp', ['ngRoute', 'ngNamedRoute']);
angular.module('myapp').config(function($routeProvider) {
$routeProvider.
when('/', {
controller: 'HomeCtrl',
name: 'home'
}).
when('/thing/:id', {
controller: 'ThingCtrl',
name: 'thing-detail'
});
});
angular.module('myapp').controller('ThingCtrl', function (namedRouteService, $location) {
var path;
path = namedRouteService.reverse('home');
path = namedRouteService.reverse('thing-detail', 1);
path = namedRouteService.reverse('thing-detail', [1]);
path = namedRouteService.reverse('thing-detail', {id: 1});
path = namedRouteService.reverse('thing-detail', 1, {foo: 'bar', 'baz': ['blah', 'meh']});
namedRouteService.open('thing-detail', 1);
$location.path(namedRouteService.reverse('thing-detail', 1));
});
<a named-route="'home'">home</a>
<a named-route="'thing-detail'" route-params="1">first thing</a>
<a named-route="'thing-detail'" route-params="{id: 1}">first thing</a>
<a named-route="'thing-detail'" route-params="1" route-query-params="{foo: 'bar'}">first thing</a>