重定向到Angular2中的@CanActivate内的其他组件
发布时间:2020-12-17 08:05:24 所属栏目:安全 来源:网络整理
导读:有没有什么办法可以重定向到另一个组件从@CanActivate在Angular2? 是的你可以!这样做会阻止您的组件实例化。 首先,创建一个新文件src / app-injector.ts let appInjectorRef;export const appInjector:any = (injector = false) = { if (!injector) { ret
有没有什么办法可以重定向到另一个组件从@CanActivate在Angular2?
是的你可以!这样做会阻止您的组件实例化。
首先,创建一个新文件src / app-injector.ts let appInjectorRef; export const appInjector:any = (injector = false) => { if (!injector) { return appInjectorRef; } appInjectorRef = injector; return appInjectorRef; }; 然后,从引导中获取引用 // ... import {appInjector} from './app-injector'; // ... bootstrap(App,[ ROUTER_PROVIDERS ]).then((appRef) => appInjector(appRef.injector)); 最后在你的功能 // ... import {appInjector} from './app-injector'; // ... @CanActivate((next,prev) => { let injector = appInjector(); let router = injector.get(Router); if (42 != 4 + 2) { router.navigate(['You','Shall','Not','Pass']); return false; } return true; }) Etvoilà! 这里已经讨论了https://github.com/angular/angular/issues/4112 你可以在这里找到一个完整的例子http://plnkr.co/edit/siMNH53PCuvUBRLk6suc?p=preview by @brandonroberts (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |