然而,自Angular 15.2起,基于类的CanActivate和CanDeactivate已被弃用…
类和InjectionToken的守卫和解析器已过时。请参考https://github.com/angular/angular/blob/main/CHANGELOG.md#1520-2023-02-22。
譬如说,Angular的AuthGuard模块中的CanActivate和CanActivateChild方法已经过时了,我们需要替换它们。有什么替代方案吗?以下是相关的Stack Overflow链接:https://stackoverflow.com/questions/75564717/angular-authguard-canactivate-and-canactivatechild-are-deprecated-how-to-repla
这件事令人不舒服的原因是,它从依赖注入容器变为了服务定位器。
Angular团队是否已经从DI容器派转向服务定位器派呢?
事实上,由于Angular的测试代码依赖于TestBed,所以现在这样做有点晚了。
然而,放弃构造函数的依赖注入,而依赖于inject(),感觉有些不舒服。