ui-router is a 3rd-party module and is very powerful. It supports everything the normal ngRoute can do as well as many extra functions.
Here are some common reason ui-router is chosen over ngRoute:
In essence, ui-router is ngRouter with more features, under the sheets it is quite different. These additional features are very useful for larger applications.
More Information:
Github: https://github.com/angular-ui/ui-router
Documentation:
API Reference: http://angular-ui.github.io/ui-router/site/#/api
Guide: https://github.com/angular-ui/ui-router/wiki
FAQs: https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions
Sample Application: http://angular-ui.github.io/ui-router/sample/#/
<!DOCTYPE html> <html ng-app="app"> <head> <title></title> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width" /> <base href="/"> </head> <body> <!--<ul> <li> <a href="#/users">Users</a> </li> <li> <a href="#/roles">Roles</a> </li> </ul>--> <ul> <li> <a ui-sref="users">Users</a> </li> <li> <a ui-sref="roles">Roles</a> </li> </ul> <ul> <li> <a href="/users">Users</a> </li> <li> <a href="/roles">Roles</a> </li> </ul> @RenderBody() <script type="text/javascript" src="/Scripts/libs/angular/angular.min.js"></script> <!--<script type="text/javascript" src="/Scripts/libs/angular/angular-route.min.js"></script>--> <script type="text/javascript" src="/Scripts/libs/angular-ui/ui-router/angular-ui-router.min.js"></script> <script type="text/javascript" src="/Scripts/app/app.js"></script> <script type="text/javascript" src="/Scripts/app/components/users/app.users.js"></script> <script type="text/javascript" src="/Scripts/app/components/users/app.users.routes.js"></script> <script type="text/javascript" src="/Scripts/app/components/users/controllers/user.controller.js"></script> <script type="text/javascript" src="/Scripts/app/components/roles/app.roles.js"></script> <script type="text/javascript" src="/Scripts/app/components/roles/app.roles.routes.js"></script> <script type="text/javascript" src="/Scripts/app/components/roles/controllers/role.controller.js"></script> </body> </html>
(function() { ‘use strict‘; angular .module(‘app.users‘) .config([‘$stateProvider‘, ‘$urlRouterProvider‘, ‘$locationProvider‘, function($stateProvider, $urlRouterProvider, $locationProvider) { $stateProvider .state(‘users‘, { url: ‘/users‘, templateUrl: ‘/Scripts/app/components/users/views/user-list.tpl.html‘, controller: ‘UserController‘ }); $locationProvider.html5Mode(true); }]); })();
AngularJS Best Practices: ui-router
原文:http://www.cnblogs.com/zhangpengc/p/5011854.html