Angular Extends

组件的继承
// 基础组件
// base.component.html

<p>base works!</p>
<div>{{aa}}</div>
<div class="fl-div">{{bb}}</div>
// base.component.ts
import { Component, Input, OnInit } from '@angular/core';

@Component({
  selector: 'l-base',
  templateUrl: './base.component.html',
  styleUrls: ['./base.component.less']
})
export class BaseComponent implements OnInit {

  @Input() bb = 'SeriousLose';
  public aa = 'aa';

  constructor() { }

  ngOnInit() {}

}
// 继承组件
// other-base.component.html

<p>other-base works!</p>
<l-base [bb]="bb"></l-base>
// other-base.component.ts

import { Component } from '@angular/core';
import { BaseComponent } from '../base/base.component';

@Component({
  selector: 'l-other-base',
  templateUrl: './other-base.component.html',
  styleUrls: ['./other-base.component.less']
  // styleUrls: BaseComponent.styleUrls.concat(["./other.component.less"])
  // styleUrls: ['./base/base.component.css', "./other.component.less"]
})
export class OtherBaseComponent extends BaseComponent {
  aa = 'bb';
}

源码

// 虚函数的集成

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

export abstract class BaseComponent {
  protected abstract getName(): string;

  @HostListener('click')
    onClick() {
        alert('Click');
    }
}
// 继承
import { Component } from '@angular/core';
import { BaseComponent } from './base';

@Component({
  selector: 'app-my',
  templateUrl: './my.component.html',
  styleUrls: ['./my.component.less'],
})
export class MyComponent extends BaseComponent {
  protected getName(): string {
    return 'MyComponent';
  }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值