Tôi có một tập hợp các thành phần angle2 sẽ được đưa vào một số dịch vụ. Suy nghĩ đầu tiên của tôi là tốt nhất nên tạo một lớp siêu cấp và tiêm dịch vụ ở đó. Bất kỳ thành phần nào của tôi sau đó sẽ mở rộng lớp cha đó nhưng cách tiếp cận này không hoạt động.
Ví dụ đơn giản:
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
}
}
Tôi có thể giải quyết điều này bằng cách chèn vào MyService
bên trong mỗi và mọi thành phần và sử dụng đối số đó cho super()
cuộc gọi nhưng điều đó rõ ràng là một số loại vô lý.
Làm thế nào để tổ chức các thành phần của tôi một cách chính xác để chúng kế thừa một dịch vụ từ siêu lớp?