gpt4 book ai didi

javascript - 条件路由更改 Angular 2 中的默认路由

转载 作者:行者123 更新时间:2023-11-30 16:07:44 25 4
gpt4 key购买 nike

我正在创建一个应用程序,当用户进入页面时,他会转到默认路由“登录”页面。我想要的是基于一个条件(如果用户有一个本地存储变量 id,一个名为 isAuthenticaded() 的方法如果不为假则返回 true)用户必须看到“投票”页面而不是“登录”页面。我认为有两种不同的方式来解决这个问题:

1- 更改默认页面:如果该方法返回 true,则默认页面应为“投票”(如果不是“登录”)。

2- 重定向用户:如果该方法返回 true,用户将被重定向到“投票”。

实现此目标的最佳方式是什么?我怎样才能做一个或两个点来获得条件路由?

这是我使用 isAuthenticated() 方法的路由配置:

import {Component} from 'angular2/core'
import {HTTP_PROVIDERS, Http} from 'angular2/http';
import 'rxjs/Rx'; // load the full rxjs
import {RouteConfig, ROUTER_DIRECTIVES, Router} from 'angular2/router';


import { PollsComponent } from './pollslist/pollslist.component'
import { Login } from './login/login'

@Component({
selector: 'my-app',
templateUrl: 'app/app.component.html',
directives: [ROUTER_DIRECTIVES, Login, PollsComponent],
providers: [HTTP_PROVIDERS]
})

@RouteConfig([
{ path: '/login', name: 'Login', component: Login, useAsDefault: true },
{ path: '/polls', name: 'Polls', component: PollsComponent }

])

export class AppComponent {
isAuthenticated() {
if (localStorage.getItem('id')) {
return true;
} else {
return false;
}

}

}

最佳答案

可以签到

  • @CanActivate() 并使用 router.navigate() 导航至另一条路线

  • 或创建自定义 <router-outlet>你在哪里做这件事。

有关详细信息,请参阅 https://medium.com/@blacksonic86/authentication-in-angular-2-958052c64492#.f76jyafdn

另见 Check if the user logged in on any page change in Angular 2

关于javascript - 条件路由更改 Angular 2 中的默认路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36772118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com