【发布时间】:2019-02-27 07:23:45
【问题描述】:
我是初学者,在按照这些教程学习 Angular 时,当我按照他在教程中所做的那样实现接口 CanAcivate 时显示错误
“AuthGaurd”类错误地实现了“CanActivate”接口。 “AuthGaurd”类型中缺少属性“canActivate”,但在“CanActivate”类型中是必需的。ts(2420)
这里是 Canactivate 的实现
export class AuthGaurd implements CanActivate
{
constructor(private auth: AuthService, private router: Router) { }
CanActivate(){
return this.auth.user$.map(user => {
if (user) return true;
this.router.navigate(['/login']);
return false;
});
}
}`
这里是进口
import { Injectable } from '@angular/core';
import { AuthService } from './auth.service';
import { CanActivate } from '@angular/router/src/utils/preactivation';
import { Router } from '@angular/router';
import 'rxjs/add/operator/map';
我将 Import 从 import { CanActivate } from '@angular/router/src/utils/preactivation'; 更改为 import { CanActivate } from '@angular/router; But not work
我还在 canActivate 中添加以下内容,因为我在 StackOverflow 上观看了一个答案,但它对我也不起作用
CanActivate(next: ActivatedRouteSnapshot,
state: ActivatedRouteSnapshot): Observable<boolean>
【问题讨论】:
-
方法应该是canActivate()。即在骆驼情况下。请参考angular.io/api/router/CanActivate
标签: angular interface observable angular-guards