Angular 4 扩展基础组件

标签 angular typescript

我有一个由其子组件扩展的基础组件,但是当我们使用 angular-cli 在 Angular 中创建一个新组件时,它会创建 html 和 css 文件,但我不会使用基础组件中的这些文件。

有没有办法在没有 html 和 css 的情况下创建基础组件?

import { Component, OnInit, Input } from '@angular/core';

@Component({
  selector: 'app-base',
  templateUrl: './base.component.html', //I dont need this
  styleUrls: ['./base.component.css'] ////I dont need this
})
export class BaseComponent implements OnInit {

  constructor() {}

  ngOnInit() {}

}


import { Component } from '@angular/core';

import { BaseComponent } from '../base/base.component';

@Component({
  selector: 'app-child',
  templateUrl: './child.component.html',
  styleUrls: ['./child.component.css']
})
export class ChildComponent extends BaseComponent {

  constructor() {
    super();
  }

  ngOnInit() {
  }

}

最佳答案

由于基类不需要自己实例化,它是抽象类,不需要@Component装饰器。

如果有依赖,子类有可能省略constructor而被继承,基类应该有@Injectable装饰器:

@Injectable()
export abstract class BaseComponent implements OnInit {
  constructor(public dep: Dep) {}

  ngOnInit() {}
}

@Component({
  selector: 'app-child',
  templateUrl: './child.component.html',
  styleUrls: ['./child.component.css']
})
export class ChildComponent extends BaseComponent {
  // dummy constructor can be omitted
/*
  constructor(dep: Dep) {
    super(dep);
  }
*/
}

关于Angular 4 扩展基础组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49320759/

相关文章:

typescript - 是否可以使用 TypeOrm 从对象设置字段值?

angular - 如何在 Angular 7 中从 ckeditor 5 检索数据?

typescript - 创建将为对象属性赋值的通用 TypeScript 函数

javascript - Angular 将数据传递给子组件

angular - Docker 构建错误 : executor failed running [/bin/sh -c npm run build]: exit code: 1

Angular 2/ ionic 2 : databinding

angular - Angular 中的文件输入事件类型

Angular Material 步进器更改图标颜色

angular - 如何将 MatButton 添加到 Angular 库中(Angular 9)

javascript - React-Typescript Hello World