ฉันมีชุดของส่วนประกอบ 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
}
}
ฉันสามารถแก้ปัญหานี้ได้โดยการฉีดMyService
เข้าไปในแต่ละองค์ประกอบและใช้อาร์กิวเมนต์นั้นสำหรับการsuper()
โทร แต่นั่นก็เป็นเรื่องที่ไร้สาระอย่างแน่นอน
จะจัดระเบียบส่วนประกอบของฉันให้ถูกต้องได้อย่างไรเพื่อให้รับช่วงบริการจากซูเปอร์คลาส