基类中没有模板的角度组件继承



我需要创建一个由公共逻辑组成的基类,并继承它并创建多个组件。在上网时,我发现了两种方法。

  1. 使用基类作为纯类型脚本类,并在继承的组件中使用@component decorator
  2. 将基类与空模板的@component一起使用,并在继承的组件中也使用@componement

如果您能说明实现这一目标的正确方法,我们将不胜感激。

根据您的用例,有几种方法可以实现这一点。为了简单起见,您可以创建一个带有构造函数的基本组件类,并通过超级调用(例如(提供继承或子类的依赖项

export class BaseComponent {
constructor(modal: ModalService) {
}

/*
Implement code and logic common to inheriting components
*/
}

现在,您可以通过在传递到基类时将模态服务注入子类来从组件扩展这个类

import {Component, OnInit} from '@angular/core';
import {BaseComponent} from './base.component';
@Component({
selector: 'app-child',
templateUrl: './child.component.html',
styleUrls: ['./child.component.scss'],
})
export class ChildComponent extends BaseComponent implements OnInit {
constructor(modal: ModalService) {
super(modal)
}
}

您可以使用@Component角度装饰器和一个空模板来注释您的基本组件,以使您的基础组件生命周期感知

最新更新