# Angular

# Router

# CanActivate  和 CanLoad 比较

  • CanActivate  - 决定是否可以激活路由,这个防护可能不是延迟加载的功能模块的最佳方式,因为这个防护将始终将模块加载到内存中,即使防护返回false,这意味着用户无权访问路线。
  • CanLoad - 决定是否可以延迟加载模块,控制是否可以加载路径。这对于延迟加载的功能模块非常有用。如果警卫返回假,他们甚至不会加载。 | | canActivate | canLoad | | --- | --- | --- | | chunk.js | 会加载 | 不会加载 | | 功能 | 防止未经授权的用户 | 阻止应用程序的整个模块 | | 安全性 | 低 - 加载chunk.js,安全性不好 | 高 | | 性能 | 低 - 因为加载的东西多 | 高 | | 实用性 | 都可以 | 只能用于LazyLoaded 模块 |

# angular cli全局版本大于本地版本 把本地版本升级方式

查看 angular 版本  ng version
如出现提示 Your global Angular CLI version (xxx) is greater than your local version (xxx). The local Angular CLI version is used.

解决方法
把项目中的angular-cli升级到最新版

  1. npm uninstall -g angular-cli
  2. npm cache clean --force 清除缓存,确保卸载干净
  3. 检查是否卸载干净 ng -v    若显示command not found则卸载干净
  4. 卸载完后 全局安装 最新版本angular cli
  5. 安装指令:npm install -g @angular/cli@latest
  6. npm uninstall --save-dev angular-cli
  7. npm install --save-dev @angular/cli@latest
  8. npm install
  9. ng -v 查看版本

上面的方法不实在,直接ng new 一个新的项目,然后把依赖项复制过来,重新安装最快

# 参考

  1. angular cli全局版本大于本地版本 把本地版本升级方式 (opens new window)