angular – 覆盖组件,如服务?

假设我们导入一个Angular Material模块:
providers:[],imports : [MaterialInput]

在MaterialInput内部,有一个名为:MaterialInputComponent的组件

出于某些原因,我想用自己的方法覆盖该组件

所以我希望能够说:

providers:[
    {
       provide: MaterialInputComponent,useClass : MyOwnInputComponent
    }
 ],imports : [MaterialInputModule]

我知道我们可以覆盖这样的服务,但是它也可以用于组件或指令吗?

更新:
我不是在寻找组件继承,我想要的是使用像Material Module这样的东西,但有时我想覆盖它的组件行为,就像你使用服务一样.

喜欢 :

如果这是MaterialInput组件背后的原始代码,它位于我的节点模块中.

@Component({})
  export class OriginalMaterialInputComonent{
        greet(){ alert('Say Aloo'); }
  }

我有一个类似的类:

@Component({})
  export class OverrideMaterialInputComonent{

        greet(){ alert('Say yes we can'); } // overriden function
  }

并且,假设我正在导入空洞MaterialInputModule

declarations:[
   {
    provide: OriginalMaterialInputComonent,useClass : OverrideMaterialInputComonent
  }
],imports : [MaterialInputModule]

那可行吗?

您可以使用装饰器,您可以查看下面的jsfiddle示例
Overriding components

https://jsfiddle.net/mohan_rathour/sqv0jx21/

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...