nuclear_kote
@nuclear_kote

Как переопределить конструктор класса во 2м ангуларе?

Есть класс A:
export class A {
     constructor(protected http: Http) {
     }
}


Есть класс B:
export class B extends A {
     constructor(protected http: BetterHttp) {
        console.log(http);
     }
}


Есть какой то переопределеный BetterHttp:
@Injectable()
export class BetterHttp extends Http {

    constructor(backend: ConnectionBackend, defaultOptions: RequestOptions) {
        super(backend, defaultOptions);
    }
.....
}

module:
@NgModule({
   providers: [
        {
            provide: BetterHttp ,
            useFactory: (xhrBackend: XHRBackend, requestOptions: RequestOptions) => {
               return new SecurityHttp(xhrBackend, requestOptions, authService, router);
            },
            deps: [XHRBackend, RequestOptions]
        }
    ]
})
export class CModule {
}


проблема в том что в B все равно продолжает инжектиться Http, вместо BetterHttp, но если делаю конструктор с BetterHttp в каком нибудь компоненте не относледованном от чего либо, то все нормально инжектиться
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ответы на вопрос 1
@NgModule({
   providers: [
        {
            provide: BetterHttp ,
            useFactory: (xhrBackend: XHRBackend, requestOptions: RequestOptions) => {
               return new SecurityHttp(xhrBackend, requestOptions, authService, router);
            },
            deps: [XHRBackend, RequestOptions]
        },
        {
            provide: Http,
            useExisting: BetterHttp,
        }
    ]
})
export class CModule {
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы