用示例解释$ routeProvider和$ stateProvider之间的区别。
答案 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是最好的选择。