相关疑难解决方法(0)

继承和依赖注入

我有一组angular2组件,应该都会注入一些服务.我的第一个想法是,最好创建一个超级类并在那里注入服务.然后我的任何组件都会扩展该超类,但这种方法不起作用.

简化示例:

export class AbstractComponent {
  constructor(private myservice: MyService) {
    // Inject the service I need for all components
  }
}

export MyComponent extends AbstractComponent {
  constructor(private anotherService: AnotherService) {
    super(); // This gives an error as super constructor needs an argument
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以通过MyService在每个组件中注入并使用该参数进行super()调用来解决这个问题,但这肯定是某种荒谬的.

如何正确组织我的组件,以便他们从超类继承服务?

inheritance inject typescript typescript1.8 angular

76
推荐指数
4
解决办法
3万
查看次数

Angular 4.3x 动态 http 拦截器

我按照medium中的这篇文章创建了一个http拦截器,它可以让我向每个http调用添加标头

@Injectable()
export class TokenInterceptor implements HttpInterceptor {
  constructor(public auth: AuthService) {}
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

    request = request.clone({
      setHeaders: {
        Authorization: `Bearer ${this.auth.getToken()}`
      }
    });
    return next.handle(request);
  }
}
Run Code Online (Sandbox Code Playgroud)

本文使用 authService 动态获取令牌。然而,一旦我将 HttpClient 注入 AuthService 中,我就会收到循环注入错误。

还有其他方法可以动态调整拦截器吗?

typescript angular-http-interceptors angular

0
推荐指数
1
解决办法
3180
查看次数