2

当我添加返回 Observable 或 Promise(在本例中为 Promise)的 canActivate 时,路由可以正常工作,但它似乎会阻止(单击)事件、管道无法正常工作等......这些功能都可以作为只要我让 canActivate 就返回 true。有什么建议么?

可以激活

  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):  Observable<boolean> | boolean | Promise<boolean> {
return Stamplay.User.currentUser()
  .then((res) => {
    if (res.user) {
      return true;
    } else {
      this.router.navigate(['/login']);
      return false;
    }
  }).catch(() => {
      this.router.navigate(['/login']);
      return false;
    });

例如,材质搜索不适用于 canActivate/

例如,材质搜索不适用于 canActivate,但当我只返回 true 或取出 canActivate 时,它​​可以完美运行。

4

1 回答 1

2

按照我的评论,返回Promise.resolve(true)Promise.reject(false)不是返回真假。

于 2017-06-09T12:55:22.863 回答