Typescript angular2 canActivate()不适用于可观察的响应
我对canActivate angular2.0.0-rc有问题Typescript angular2 canActivate()不适用于可观察的响应,typescript,angular,angular2-routing,Typescript,Angular,Angular2 Routing,我对canActivate angular2.0.0-rc有问题 canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>{ console.log('canActivate with AclService'); // return true; return Observable.create((observer:Subject<b
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>{
console.log('canActivate with AclService');
// return true;
return Observable.create((observer:Subject<boolean>) => { observer.next(true); });
}
canActivate(下一步:ActivatedRouteSnapshot,状态:RouterStateSnashot):可观察{
log('canactivatewithaclservice');
//返回true;
返回Observable.create((observator:Subject)=>{observator.next(true);});
}
它不适用于可观察的响应,但适用于简单的布尔响应
如果您添加.first()
或通过其他方式完成可观察的
,如何解决此问题
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>{
console.log('canActivate with AclService');
// return true;
return Observable.create((observer:Subject<boolean>) => { observer.next(true); }).first();
}
canActivate(下一步:ActivatedRouteSnapshot,状态:RouterStateSnashot):可观察{
log('canactivatewithaclservice');
//返回true;
返回Observable.create((observer:Subject)=>{observer.next(true);}).first();
}
或
canActivate(下一步:ActivatedRouteSnapshot,状态:RouterStateSnashot):可观察{
log('canactivatewithaclservice');
//返回true;
可观察的返回(真);
}
什么叫“它不工作”?你期待什么?发生了什么?不工作意味着canActivate角色不工作:如果我返回布尔值(true或false),它的工作意味着当前路由的真实访问是否允许,如果返回false,但如果返回可观察,它不工作,我就有同样的问题。我按照问题的答案做了,但不起作用。当我调用时返回true代码>立即生效。@DarwinGautalius我向github angular project添加了相同的问题……如果我想要一个Http调用,结果意味着canActivate=false,该怎么办?对不起,我不明白这个问题是关于什么的。
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>{
console.log('canActivate with AclService');
// return true;
return Observable.of(true);
}