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

时间:2014-06-16 15:12:50

标签: javascript angularjs angular-ui-router

我试图通过实现延迟加载状态来查看是否可以使用ui-router将状态设置委派给我的应用程序的子组件。虽然我设法让延迟加载部分使用$state.go或同等版本工作,但我无法使用该网址进行操作。

例如,在发布时,我的app只会设置以下两种状态:view1view2。加载view1州后,会将其设置为自己的子级状态:view1.profileview1.interest。从Gist

查看此示例网站

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

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

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

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

也许答案是他们对How to: Lazy load states的神秘文档的一部分。我无法弄明白他们的意思:

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

1 个答案:

答案 0 :(得分:4)

马可

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

有关API和$ futureStateProvider的概述,请参阅http://christopherthielen.github.io/ui-router-extras/#/future/