$ routeProvider&之间的差异是什么? AngularJS中的$ stateProvider?

时间:2015-10-15 09:25:46

标签: angularjs

用示例解释$ routeProvider和$ stateProvider之间的区别。

2 个答案:

答案 0 :(得分:2)

基本上,$stateProvider,顾名思义,允许您拥有一条路线的不同状态。这意味着您可以为州提供名称,不同的控制器,不同的视图,而无需使用直接href到路线。您可以在此处查看$stateProvider$routeProvider的代码差异:

$routeProvider
        .when('/first/', {
            templateUrl: 'app/views/first.html',
            controller: 'FirstController'
        })
});

如您所见,路由定义是该示例中的url路径。

虽然$stateProvider为您提供了更大的灵活性,例如:

 $stateProvider
         .state("thisIsTheSecondPage", {
                    url: "/second/",
                    templateUrl: '/app/views/second.html',
                    controller: 'SecondController'
                });

使用ui-router和$stateProvider,您可以使用嵌套视图,这比常规ngRoute路由复杂得多。 从更个人的角度来看,使用<a ui-sref="stateName">比使用<a href="#/routename">更容易。

答案 1 :(得分:0)

通常,ui-router在状态机制上工作。例如:您有一个播放视频的Web应用程序,有一个在页面所有状态之间共享的播放器。现在,假设您只需点击一些视频即可播放。在这种情况下,只需更改视频播放器的状态即可,而不是重新加载整个页面(我们可以在gaana,savan等音乐应用中看到此信息。)可以通过ui-router轻松处理。

在ngRoute中,我们只是附加视图和控制器。

使用ngRoute(angular-route.js)时,使用$ routeProvider配置路由。但是,当与ui-router((angular-ui-router.js))一起使用时,route是使用$ stateProvider和$ urlRouterProvider配置的。

  

ng-View(由AngularJS团队开发)每次只能使用一次   页面,而ui-View(第三方模块)可以多次使用   每页。

     

ui-View是最好的选择。