angularjs ngRoute和ui.router对比

ngRoute模块是angularjs自带的路由模块,ui.router是一个第三方路由模块,接下来将对两者进行一个对比:

ng-router(angular-router.js) ng-view ngRoute模块 $routeProvider服务 .when() .otherwise();

ui-router(angular-ui-router.js)  ui-view ui.router模块 $stateProvider服务 .state() ,$urlRouterProvider服务 .otherwise();

ng-router:

<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<!-- html -->
<ul class="menu">
    <li><a href="#/view1">view1</a></li>
    <li><a href="#/view2">view2</a></li>
</ul>
<div ng-view></div>

//js
angular.module('myApp', ['ngRoute'])
.config(['$locationProvider', '$routeProvider',function($locationProvider, $routeProvider){
    $locationProvider.html5Mode(false).hashPrefix('');
    $routeProvider
     .when('/view1', {
         templateUrl: 'view1/view1.html',
         controller: 'View1Ctrl'
     })
     .when('/view2', {
         templateUrl: 'view2/view2.html',
         controller: 'View2Ctrl'
     })
     .otherwise({redirectTo: '/view1'});
}])

ui-router:

<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>

<!--html-->
<ul class="menu">
    <li><a ui-sref="state1">state1</a></li>
    <li><a ui-sref="state2">state2</a></li>
</ul>
<div ui-view></div>

//js
angular.module('myApp', ['ui.router'])
.config(['$stateProvider','$urlRouterProvider',function($stateProvider, $urlRouterProvider){
    $urlRouterProvider.otherwise('/state2');
    // ui-router state配置
    $stateProvider.state('state1',{
        url: "/state1",
        templateUrl: "view1/view1.html",
        controller: 'View1Ctrl'
    }).state('state2',{
        url: "/state2",
        templateUrl: 'view2/view2.html',
        controller: 'View2Ctrl'
    });
}])

猜你喜欢

转载自www.cnblogs.com/xuepei/p/9591467.html