Перенаправить на маршрут входа, если пользователь не вошел в Angular2 2.0.0-rc.4

Это мой HTML-файл

<div class="container">
  <h1>Dohatec Data</h1>
  <div class="navLinks">
    <a [routerLink]="['/home']">Home</a>&nbsp;
    <a [routerLink]="['/about']">About-Us </a>&nbsp;
    <a [routerLink]="['/price']">Pricing</a>
  </div>
</div>

Это мой RouterConfig.

const routes: RouterConfig = [
  { path: '', redirectTo: 'home', terminal: true },
  { path: 'home', component: HomeComponent },
  { path: 'about', component: AboutUsComponent },
  { path: 'price', component: PriceComponent },
  { path: 'login', component: LoginComponent }
];

Я хочу перенаправить пользователей, если они не зарегистрированы в / home маршруте. Могу ли я сделать это в RouterConfig? Я не хочу использоватьcanActivate: [LoggedInGuard] потому что это ограничивает перед маршрутом

Ответы на вопрос(1)

Решение Вопроса

1. и вы можете проверить, вошел ли пользователь оттуда на ngoninit вашего компонента. На основании этого вы можете перенаправить на страницу входа, если пользователь не вошел в систему.

2. Вы можете сделать переменную в сервисе истинной, если пользователь вошел в систему, и на основании этого вы можете перенаправить на страницу входа.

Я надеюсь, что это то, что вы ищете :)

ВАШ ОТВЕТ :-

Вы можете использовать свойства canActivate и canDeactivate в своих маршрутах. Прежде всего установите переменную с именем isLoggedIn в значение false и сделайте ее истинной при входе в систему, и вы можете ограничить пользователя этим, добавив метод canActivate как: -

в вашем файле маршрутов третье свойство: ..

canActivate:[Authentication]

и импортировать аутентификацию из другого файла .....

import { CanActivate, Router } from '@angular/router';

export class Authentication implements CanActivate {

constructor(private service: Service, private router: Router) {}


canActivate() {

    if (this.authService.isLoggedIn) { return true; }
    this.router.navigate(['/login']);
    return false;
  }
}
 Akshay Rao14 июл. 2016 г., 14:15
это то, что вы искали @pdfarhad .. надеюсь, вам понравится :)
 pd farhad14 июл. 2016 г., 09:03
Ну, я получил взломать с помощьюrouterconfig а такжеcanActivate: [LoggedInGuard]Итак, опубликую, и, как я уже говорил ранее, я уже сделал то, что вы упомянули
 pd farhad14 июл. 2016 г., 20:45
Ну, я ленился опубликовать свой ответ, но вы уже сделали. Да, я сделал то же самое в своем коде, поэтому принимаю ваш ответ
 Akshay Rao14 июл. 2016 г., 08:59
Но сейчас вы должны сделать, как указано выше .. это невозможно сделать в routerconfig
 pd farhad14 июл. 2016 г., 08:46
Я ценю ваши ответы, но это то, что я уже сделал. Могу ли я сделать это в RouterConfig?
 Akshay Rao14 июл. 2016 г., 08:59
так как angular2 не стабильна до сих пор, и команда работает над этим, поэтому я уверен, что они будут внедрять эту концепцию, как мы смогли сделать в angularjs ...

Ваш ответ на вопрос