乐趣区

关于angular:Cannot-instantiate-cyclic-dependency

angualr:8.0.6
产生的起因是,旧的版本会呈现循环援用依赖谬误;
呈现场景:
user.service.ts

import {Injectable} from '@angular/core';  
import {of} from 'rxjs';  
import {ActivatedRoute, Router} from '@angular/router';  
import {tap} from 'rxjs/operators';  
  
@Injectable({providedIn: 'root'})  
export class UserService {  
  
  constructor(  
    private router: Router,  
 private route: ActivatedRoute  
  ) { }  
  
  loginByToken() {console.log('init start');  
  
 return of('111').pipe(tap(() => {setTimeout(() => {this.router.navigateByUrl('/login');  
 }, 2000);  
 }));  
 }  
  
}

解决方案是,去掉上面的依赖项

private router: Router,  
private route: ActivatedRoute

angular9 和 angular10 曾经解决了这个问题。不必去掉路由的局部;

退出移动版