重定向到Angular2里面

重定向到Angular2里面

本文介绍了重定向到Angular2里面@CanActivate一个不同的组件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有什么办法,我们可以重定向从@CanActivate在Angular2不同的组成部分?

Is there any way we can redirect to a different component from @CanActivate in Angular2 ?

推荐答案

是的,你可以!这样做将prevent实例白白你的组件。

Yes, you can! Doing this will prevent to instantiate for nothing your component.

首先,建立一个新文件的src / APP-injector.ts

First, make a new file src/app-injector.ts

let appInjectorRef;

export const appInjector = (injector = false) => {
    if (!injector) {
        return appInjectorRef;
    }

    appInjectorRef = injector;

    return appInjectorRef;
};

然后,获得引导

// ...
import {appInjector} from './app-injector';
// ...


bootstrap(App, [
  ROUTER_PROVIDERS
]).then((appRef) => appInjector(appRef.injector));

最后,在你的函数

Finally in your function

// ...
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;
})

乙醚瞧!

据这里讨论

您可以在这里通过@brandonroberts

You can find a complete example here http://plnkr.co/edit/siMNH53PCuvUBRLk6suc?p=preview by @brandonroberts

这篇关于重定向到Angular2里面@CanActivate一个不同的组件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 04:08