【问题标题】:AngularJS routing architecture, page interactionAngularJS路由架构,页面交互
【发布时间】:2017-12-14 23:56:02
【问题描述】:

我有一个 Web 应用程序,其中包含一个迷你 SPA,它基本上是一个非常复杂的工作表。此工作表可以包括几十页,每页都有几十个字段和指向工作表其他部分的链接。目前使用 AngularJS 进行架构,工作表导航或屏幕链接中的每次点击都会调用一个函数(例如 loadWorksheetPage(x))。控制器中的这些函数调用 REST 服务并加载正确的页面信息。

我现在的缺点是一切都发生在单个 url 上。用户可能会在同一个工作表的不同页面上花费大量时间。也许他们希望后退按钮能够工作,但目前它会将他们带到他们在工作表之前访问的最后一页。

围绕此类应用程序有哪些最佳做法?这是一个迷你 SPA,所以我不希望 angularjs 处理所有路由。我可以让它在我想的工作表中处理路由(工作表/5/页/7?)。不过,这可能是一个很大的变化,我必须先打一条 MVC 路线(worksheet/5),然后是一条 angularjs 路线(/page/7)。不确定这是否可能。我正在考虑任何时候用户单击按钮以在工作表中加载不同的页面,我都可以调用一个 API 来保存页面历史记录。然后我可以中断后退按钮点击以转到正确的页面。

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    我不确定我是否应该将其作为评论或答案发布,但可以。从它的声音来看,AngularJS ui-router 就是你所追求的。

    你基本上是在说你有一些复杂的表单和逻辑,你想将它们模块化成单独的路由,甚至更好的控制器和它们自己的视图。这正是 ui-router 所做的。

    我用 ui-router 开发了一些非常复杂的表单,它为您提供了无限嵌套的路由、抽象状态(当您希望您的子状态从基本状态继承一些通用功能时)、多个命名视图(多个视图及其在一个状态下拥有自己的控制器)和带有可选 url 的嵌套路由,也就是说,您可以将一个状态作为另一个状态的子状态,但即使它处于活动状态,也可以选择不显示子状态的 url 路径。

    基本上,ui-router 可能是 AngularJS 最强大的扩展。它真正释放了 AngularJS 的力量,并帮助您编写更加动态和模块化的应用程序。

    从这里开始:

    Get started here

    An intro article

    In depth Guide

    希望有所帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-11
      • 2017-11-27
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      相关资源
      最近更新 更多