“懒惰状态定义”这个术语在引用$ stateChangeNotFound时意味着什么

时间:2015-03-19 10:41:36

标签: angularjs angular-ui-router

我正在ui-router观看视频而发言人(Tim Kindberg)提到$stateChangeNotFound对于懒惰的州定义很有用。他的意思是什么,在什么情况下会被使用?

我假设它与“懒惰加载”一词有关,我理解这一点。 AngularJS / ui-router的新手,并提前感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

延迟加载是指在运行时及时加载代码。在这种情况下,它意味着只有当用户尝试导航到状态(尚未存在)时才可能创建/定义状态。

例如:

  • 存在这些状态是因为它们已在配置时声明

    1. a: { url: '/a' }
    2. b: { url: '/b' }
  • 用户点击指向/c的链接。

  • $stateNotFound事件在根范围内被触发
  • 应用程序侦听$stateNotFound事件
  • 应用程序为新状态c: { url: '/c' }
  • 加载状态定义(来自服务器等)
  • 一旦状态定义延迟加载,应用程序然后手动重新触发ui-router以将url' / c'和ui-router路由同步到现在新创建的状态{{ 1}}。

请查看UI-Router Extras Future States以了解此模式的实现。