【问题标题】:Which is better ng-view or ui-view? [closed]ng-view 和 ui-view 哪个更好? [关闭]
【发布时间】:2016-07-10 05:13:49
【问题描述】:

对于大型项目,首选 ui-router。但它提供的主要优势是嵌套视图。但这也可以通过 ng-view 来实现。那么选择哪一个呢?

【问题讨论】:

标签: angularjs ng-view


【解决方案1】:

使用 ui-router,因为它比原生 ng-view(嵌套视图...)要好得多。此外,AngularJS 将在 Angular 2.0 中实现 ui-router 的许多功能。

AngularJS 2.0 Router Design Document

为什么要使用 UI-Router

多视图

大多数应用程序都可以分解为区域。至少,应用程序通常具有页眉、主要内容区域和页脚。 在大多数用例中,所有这些区域(视图)会同时显示在页面上。使用内置的 AngularJS 路由器 ngRoute,每页只允许一个视图(ng-view)。此限制导致人们使用包含 (ng-include) 或其他解决方法来为其应用程序创建布局或母版页。 UI-Router 支持多个视图,每个视图都可以有自己对应的控制器,因此如果需要,这些区域中的每一个都可以在整个应用程序中进行封装和重用。

嵌套视图

应用程序中嵌套视图的常见示例是主/详细信息,或者更具体地说,是列表/详细信息页面。许多应用程序会显示一个项目列表,然后当您单击某个项目时,您会看到该项目的详细信息。进一步看这个例子,您可以在查看项目详细信息时单击编辑链接,将您带到项目的可编辑表单。

如果列表和详细信息位于不同的页面(或在 AngularJS 中称为视图),则可以使用内置的 AngularJS 路由器 ngRoute 轻松实现此场景。但是,如果您希望列表保留在页面上,同时将详细信息显示在列表的右侧或下方,这将变得更具挑战性。需要明确的是,这个要求可以通过 ngRoute 与两个控制器共享一个视图来实现:一个用于列表,一个用于细节,并根据需要隐藏和显示细节。结果并不理想,因为我们希望每个列表和详细信息都有自己的控制器和视图,并且只负责一项职责(显示列表或显示项目详细信息)。通过将这些用户界面区域封装在他们自己的视图中,我们可以拥有一个更加可组合的 UI,允许我们将各个部分组合在一起或根据需要将它们分开以满足需求。嵌套视图使我们不仅可以同时将这些视图组合在一起,还可以将视图嵌套在另一个视图中

【讨论】:

  • 谢谢拉塞尔..如果有足够的声誉会投票给你
猜你喜欢
  • 1970-01-01
  • 2020-05-16
  • 2013-10-27
  • 2016-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-22
相关资源
最近更新 更多