哪个更好?
对于大型项目,ui-router是首选。 但它给出的主要优点是嵌套视图。 但是,这也可以通过ng-view来实现。 那么选择哪一个?
使用ui-router,因为它比原生的ng-view(嵌套视图...)好得多。 此外,AngularJS将实现ui-router在Angular 2.0中的许多功能。
AngularJS 2.0路由器设计文档
为什么你应该使用UI路由器
多个视图
大多数应用程序可以分解成区域。 应用程序通常至少有一个标题,一个主要内容区域和一个页脚。 在大多数情况下,所有这些区域(视图)都会同时显示在页面上。 使用内置的AngularJS路由器ngRoute,每个页面只允许一个视图(ng-view)。 此限制会导致人们使用includes(ng-include)或其他解决方法为其应用程序创建布局或主页面。 UI-Router支持多个视图,每个视图都可以拥有自己相应的控制器,这样每个区域都可以封装并在整个应用程序中重用(如果需要的话)。
嵌套视图
应用程序中嵌套视图的常见示例是主/细节,更具体地说,是一个列表/详细信息页面。 许多应用程序显示项目列表,然后当您单击某个项目时,您会看到该项目的详细信息。 进一步考虑这个例子,你可能会在查看项目详细信息时点击一个编辑链接,该链接会将您带到该项目的可编辑表单。
如果列表和详细信息位于不同的页面(或在AngularJS中调用的视图),那么使用内置的AngularJS路由器ngRoute可轻松实现此场景。 但是,如果您希望列表保留在页面上,而将详细信息显示在列表的右侧或下方,则这变得更具挑战性。 清楚的是,ngRoute可以通过使用两个控制器共享单个视图来实现此要求:一个用于列表,另一个用于细节并根据需要隐藏和显示细节。 结果并不理想,因为我们希望每个列表和详细信息都有自己的控制器和视图,只有一个责任(显示列表或显示项目详细信息)。 通过将这些用户界面区域封装在他们自己的视图中,我们可以有一个更加可组合的用户界面,使我们能够将各个部分放在一起,或根据需要将它们分开以满足要求。 嵌套视图使我们不仅可以将这些视图同时放在一起,而且还可以将视图嵌入到另一视图中
链接地址: http://www.djcxy.com/p/77963.html上一篇: Which is better ng