A route provider and ng-href add-on for advanced routing and mobile device support
The goto directive depends on Angular Gesture so the links are responsive on all mobile devices
- Open bower.json or components.json
- Add "ngRouteNames": "~1.1.1"to your dependency list
- Run bower install
- In your application you can now add: (depending on what you need)
	- <script src="components/ngRouteNames/ngRouteNames.js"></script>
- <script src="components/ngRouteNames/directive/goto.js"></script>
 
Routes are defined in the same way as regluar AngularJS routes with the following differences:
- Use of $routeNamesProviderin replacement of$routeProvider
- Supplying a name for the route
- Provides a promise that is resolved once navigation is complete
Example 1:
angular.module('ExampleApp', ['ngRouteNames'])
.config(['$routeNamesProvider', '$locationProvider', function ($routeProvider) {
  $routeProvider
    .when('/', {
      templateUrl: 'views/view1.html',
      name: 'home'
    })
    .when('/view2', {
      templateUrl: 'views/view2.html',
      name: 'view2'
    })
    .when('/:user/view3', {
      templateUrl: 'views/view3.html',
      name: 'view3'
    })
    .when('/:user/view4', {
      templateUrl: 'views/view4.html',
      name: 'view4'
    })
    .otherwise({
      redirectTo: '/'
    });
    $routeProvider.activeClass = 'is-active';	// This is the default
}]).
controller('SomeCtrl', ['$scope', '$route', '$http', function ($scope, $route, $http) {
	$scope.funcToCall = function() {
		// Simple:
		$route.to.view4();
		// defining params and search params (both optional)
		$route.to.view4({
				user: 'steve'
			},
			{
				using: 'search',
				params: 'is optional too'
		});
        // Promises:
        $route.to.view4().then(function() {
            // Update elements on the page or trigger functions.
            // Great for things like using HTML5 fullscreen where
            // Updating the route after making an element
            // fullscreen will cause fullscreen to exit.
        });
	};
}]);- Links are defined using the gotodirective and should be used instead ofng-href.
- They are not limited to use on <div goto="route-name">link tags</div>
- Use attributes to define route parameters for <a goto="route-name" param1="somedata" param2="more">Specific links</a>
Example 2 (using the routes from example 1):
<img src="logo.jpg" goto="home" />
<nav>
	<ul>
		<li><a goto="view2">View2</a></li>
		<li><a goto="view3" user="steve">View3</a></li>
		<li><a goto="view4">View4</a></li> <!-- will use existing user param if defined in the current url -->
	</ul>
</nav>- 'is-active'is defined as the default active class.- The first example indicates how you can change this
- Any link defined with gotowill have this class when the current url matches.
 
- Links defined with gotowill have the route name added as a class
Note: If you are looking to highlight a higher dom element such as the li elements in example 2 you can do the following:
<nav>
	<ul>
		<!-- apply the class 'active' when the route name matches -->
		<li ng-class="{active: $route.current.name === 'view2'}">
			<a goto="view2">View2</a>
		</li>
	</ul>
</nav>Experimental – issues / feedback welcome
A param named search is reserved for defining search params. This param is $parsed so it must be valid javascript returning a string or object that will be used as the search parameters
Examples:
- <a goto="search" search="{param1:'somedata', param2:'more data'}"></a>as an object
- <a goto="search" search="'param1=somedata¶m2=more data'"></a>as a string
- <a goto="search" search="someFunction();"></a>as a function call
- <a goto="search" search="true"></a>maintain any existing search params
Note: the context for the search parameter is the current $scope when using goto
