比方說,我有以下文件角4重構構造
blog.abstract.ts
import { Component, ElementRef } from '@angular/core';
import { ItemService } from 'services/item/item.service';
import { Router } from '@angular/router';
import { ModalService } from 'services/modal/modal.service';
export class AbstractBlog {
constructor(protected modalService: ModalService, protected router: Router, protected itemService: ItemService) { }
// use services
}
blog1.component.ts
import { Component, ElementRef } from '@angular/core';
import { ItemService } from 'services/item/item.service';
import { Router } from '@angular/router';
import { ModalService } from 'services/modal/modal.service';
@Component({
selector: 'app-blog-1',
templateUrl: 'blog-1.html',
})
export class Blog1Component extends AbstractBlog {
constructor(private _elementRef: ElementRef, modalService: ModalService, router: Router, itemService: ItemService) {
super(modalService, router, itemService);
}
// use services & _elementRef
}
blog2.component .ts
import { Component, ElementRef } from '@angular/core';
import { ItemService } from 'services/item/item.service';
import { Router } from '@angular/router';
import { ModalService } from 'services/modal/modal.service';
@Component({
selector: 'app-blog-2',
templateUrl: 'blog-2.html',
})
export class Blog2Component extends AbstractBlog{
constructor(modalService: ModalService, router: Router, itemService: ItemService) {
super(modalService, router, itemService);
}
// use services
}
我想簡化構造函數並避免導入每個服務&每次我需要一個新的BlogComponent時使用super(....)方法。
假設有一百個BlogComponent,並且它們中的每一個都位於不同的文件夾中。
對於每個這些模塊,我需要擴展AbstractBlog,導入服務並使用相同的參數調用super方法。
現在,如果我想在AbstractBlog的構造函數中添加另一個服務,我將不得不更新一百個文件以匹配構造函數。
有沒有更好的方法來處理這種情況?
爲你解答yurzui只能使用'Injector' – yurzui
感謝。 你能告訴我一個基於這個例子的注射器的例子嗎? – melkir
https://stackoverflow.com/questions/39038791/inheritance-and-dependency-injection – yurzui