使用url的ui-router延迟加载状态

mar*_*seu 7 javascript angularjs angular-ui-router

我试图看看我是否可以使用ui-router通过实现状态的延迟加载将状态设置委托给我的应用程序的子组件.虽然我设法让延迟加载部分使用$state.go或等效,我无法使用URL工作.

例如,在启动时,我app将只设置以下两种状态:view1view2.当view1状态被加载时,它然后设置它自己的子状态:view1.profileview1.interest.从Gist看一下这个示例站点:

http://bl.ocks.org/marcoslin/raw/b59cfa9a9a44bde04f9f/

正如您将从上面的示例中看到的那样,View1Profile在启动时不是有效链接,但如果您单击它,它将加载view1然后加载view1profile生成的url:

http://bl.ocks.org/marcoslin/raw/b59cfa9a9a44bde04f9f/#/view1/profile

但是,如果您单击上面生成的URL,则app重新加载并不再了解view1profile并重定向您home.关于如何解决这个问题的任何建议?更具体地说,无论如何我可以获取触发$stateNotFound事件的URL 吗?

也许答案是他们关于如何:懒惰加载状态的神秘文档的一部分.我无法弄明白他们的意思:

  • 如何在事件上设置重试承诺
  • 如何使用存储的提供程序定义unfoundState并解析promise

Chr*_*s T 4

马科斯,

有关 FutureState 与 AngularAMD 的集成,请参阅http://christopherthielen.github.io/ui-router-extras/example/future/index.html 。

请参阅http://christopherthielen.github.io/ui-router-extras/#/future/了解 API 和 $futureStateProvider 的概述。