ngRoute (angular-route.js) 和 ui-router (angular-ui-router.js) 模块有什么不同呢?
ngRoute (angular-route.js) 和 ui-router (angular-ui-router.js) 模块有什么不同呢?
很多文章中都有说道:当时ngRoute在路由配置时用$routeProvider,但是当ui-router路由配置时用 $stateProvider 和 $urlRouterProvider。
那么它们有什么不同呢?
1、ngroute是用AngularJS框架的核心部分。
2、ui-router是一个社区库,它是用来提高完善ngroute路由功能的。
那么我到底用哪个,或者说,哪个更适合可管理性和适合可扩展性?
ui-router路由器是一个第三方模块,功能非常强大。它支持一切正常ngroute也可以做许多额外的功能。
下边是常见的选择ui-router路由器的因素,而不用ngRoute。
- UI-Router路由器允许嵌套视图(nested views)和多个命名视图(multiple named views)。这是非常有用的应用程序,你可能有较多的页面来继承其他部分。@camnpr
- ui-router允许你有很强的类型之间的连接状态的基础上的状态名称。
$stateProvider.state(state, { url: '/' + lastState, controller: 'ctrl.' + state, templateUrl: '/views/' + path + '.html' });
通过构建ui-sref来实现不同的状态的链接到不同的页面(或者模板)
<a ng-repeat="camnpr in group.items" ng-show="{{camnpr.show}}"ui-sref="{{camnpr.state}}">{{item.label}}</a>
同时你的路由可以访问动态创建的链接
- states允许你通过$statsParams来轻松的传递信息,允许不同的信息不同的states的map格式。
综上所述,angular-ui-router是一个功能更强大,更轻松配置项目的一个模块库,是ngRouter的升级版!