我试图通过实现延迟加载状态来查看是否可以使用
ui-router将状态设置委托给我的应用程序的子组件.虽然我设法让延迟加载部分使用$state.go或等效工作,但我无法使用URL工作.
例如,在启动时,我的应用程序将仅设置以下两种状态:view1和view2.加载view1状态后,它会设置自己的子状态:view1.profile和view1.interest.从Gist开始查看此示例站点:
http://bl.ocks.org/marcoslin/raw/b59cfa9a9a44bde04f9f/
正如您将从上面的示例中看到的,View1Profile在启动时不是有效链接,但是如果您单击它,它将加载view1,然后使用生成的url加载view1profile:
http://bl.ocks.org/marcoslin/raw/b59cfa9a9a44bde04f9f/#/view1/profile
但是,如果您单击上面生成的URL,则应用程序会重新加载并且不再了解view1profile并将您重定向回到主页.关于如何解决这个问题的任何建议?更具体地说,无论如何我可以获取触发$stateNotFound事件的url吗?
也许答案是他们在How to: Lazy load states上的神秘文档的一部分.我无法弄清楚他们的意思是:
>如何设置事件的重试承诺
>如何使用存储的提供程序定义unfoundState并解析promise
解决方法
马科斯,
有关FutureState与AngularAMD的集成,请参阅http://christopherthielen.github.io/ui-router-extras/example/future/index.html.
有关API和$futureStateProvider的概述,请参见http://christopherthielen.github.io/ui-router-extras/#/future/.