我正在尝试使用 ui-router 实现状态的惰性加载,将状态设置委托给我的应用程序的子组件。虽然我已经成功地使用 $state.go
或等价物来实现了惰性加载部分,但我无法通过URL来实现它。
例如,在启动时,我的 app
只会设置以下2个状态:view1
和 view2
。当加载 view1
状态时,它就会设置自己的子状态:view1.profile
和 view1.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
。有什么建议我可以解决这个问题吗?更具体地说,有没有办法让URL触发 $stateNotFound
事件?也许答案部分在他们关于 如何:延迟加载状态的神秘文档中。我无法弄清楚以下内容的含义:
- 如何在事件上设置重试承诺
- 如何使用存储的提供程序定义 unfoundState 并解决承诺
angularAMD.config
,它将有助于按需创建和设置$stateProvider
。 - marcoseu