Tôi có lớp sau ModuleWithHttp
:Làm thế nào để mở rộng một thành phần với tiêm phụ thuộc trong Angular 2?
@Injectable()
export default class {
constructor(private fetchApi: FetchApi) {}
}
và tôi muốn sử dụng nó như sau:
@Component({
selector: 'main',
providers: [FetchApi]
})
export default class extends ModuleWithHttp {
onInit() {
this.fetchApi.call();
}
}
nên bằng cách mở rộng một lớp siêu mà đã tiêm một sự phụ thuộc tôi muốn có quyền truy cập vào nó ở trẻ em của nó.
Tôi đã thử nhiều cách khác nhau, thậm chí có siêu hạng như một thành phần:
@Component({
providers: [FetchApi]
})
export default class {
constructor(private fetchApi: FetchApi) {}
}
Nhưng vẫn còn, this.fetchApi
là null
, ngay cả trong siêu lớp.
Bạn cần phải tiêm FetchApi vào lớp kế thừa, nhưng nếu nó giúp, bạn có thể truy cập nó từ một cái gì đó lớp cơ sở làm như '( this) .fetchapi.call (...)' (bạn không cần phải chuyển nó qua 'super()'. –
rinogo