Я пытаюсь выполнить проверку подлинности на пару дней, но я все еще не могу запустить свою функцию canActivate
. Мой охранник аутентификации выглядит следующим образом (что, очевидно, не на самом деле охрана ничего):Угловой 2 маршрутизатор с защитой входа
import { Injectable } from 'angular2/core';
import { Observable } from "rxjs/Rx";
@Injectable()
export class LoggedInGuard implements CanActivate {
constructor() {}
canActivate():Observable<boolean>|boolean {
console.log('AuthGuard#canActivate called');
return true;
}
}
И мое приложение компонент, который импортирует охрану и реализует маршрутизатор выглядит следующим образом:
import { Component } from 'angular2/core';
import { HTTP_PROVIDERS } from 'angular2/http';
import { RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from 'angular2/router';
import 'rxjs/Rx'; // load the full rxjs
import { CharacterListComponent } from './characters/character-list.component';
import { VehicleListComponent } from './vehicles/vehicle-list.component';
import { LoggedInGuard } from './login.guard.ts'
@Component({
selector: 'story-app',
templateUrl: 'app/app.component.html',
directives: [ROUTER_DIRECTIVES],
providers: [
HTTP_PROVIDERS,
ROUTER_PROVIDERS,
LoggedInGuard
]
})
@RouteConfig([
{ path: '/characters', name: 'Characters', component: CharacterListComponent, useAsDefault: true },
{ path: '/vehicles', name: 'Vehicles', component: VehicleListComponent, canActivate: [LoggedInGuard] }
])
export class AppComponent { }
Каждый раз, когда LoggedInGuard
запускается функция canActivate
, должна быть сделана запись в журнале. При навигации по ссылкам запись никогда не выполняется, то есть функция никогда не запускается. Вы можете увидеть Plunker в действии here.
Любое понимание было бы весьма признателен ... Я уверен, что это будет легко один для кого-то более знаком с угловым 2.
Эй, у меня тоже такая проблема, вы нашли какое-либо решение для этого, пожалуйста, поделитесь – Sujithrao
@Sujithrao, какая версия Angular 2 вы используете? Там есть множество релизов, и вы можете найти документацию (в виде сообщений в блогах, видеороликов YouTube и вопросов SO) для многих из них. Убедитесь, что вы используете Angular 2.xx (и НЕ кандидат-релиз), не пытайтесь применять примеры до 15 сентября 2016 года и старайтесь использовать [официальные угловые документы] (https://angular.io/docs/ts/latest /) – dslosky