【发布时间】:2017-08-21 19:06:02
【问题描述】:
我正在构建一个 Angular 项目。 我想创建一个具有通用功能的 BaseComponent。 例如:我有一个 TeacherIndexComponent:
@Component({
selector: 'app-teacher-index',
templateUrl: './teacher-index.component.html'
})
export class TeacherIndexComponent implements OnInit {
public teachers : Profesor[];
constructor(private _otherService: OtherService
private _teacherService: TeacherService,
private _messageService : MessageService) {
}
ngOnInit() {
this._otherService.doSomething();
this._teacherService.getTeachers()
.subscribe(teacherData => this.teachers= teacherData,
error => this._messageService.showErrorMessage(error));
}
在每个组件中我都必须注入 OtherService。我想创建一个 BaseComponent。在这个组件中应该注入 OtherService 并在它的 ngOnInit() 调用 this._otherService.doSomething(); 这个 baseComponent 没有模板(html)唯一的功能,我需要使用它的事件功能(ngOnInit,ngOnDestroy)。 所有组件都扩展至 BaseComponent:
export class TeacherIndexComponent extends BaseComponent implements OnInit {
BaseComponent 也实现了 OnInit:
export class BaseABMComponent implements OnInit {
constructor(private _otherService: OtherService) {
}
ngOnInit() {
this._otherService.doSomething();
}
这类似于 BaseController,是否可以在 Angular 中构建它?或者我应该在每个组件中重复代码?
非常感谢!
【问题讨论】:
标签: javascript angular angular-services