有没有办法在Angular 5中轻松包装或扩展Angular-material指令?

问题描述 投票:1回答:2

我在angular5应用程序中使用角度材料库,但我不希望它的指令/组件/类名称在我的标记中,我更喜欢与外部库保持不可知。但是,我尝试过这样的事情:

import { Directive, 
         ElementRef, 
         Renderer, 
         Renderer2 }  from "@angular/core";

import { MatButton }  from "@angular/material";
import { OnInit }     from "@angular/core";
import { Platform}    from "@angular/cdk/platform";
import {FocusMonitor} from "@angular/cdk/a11y";

@Directive({
  selector: '[my-button]'
})
export class MyButtonDirective extends MatButton {

  ngOnInit(): void {

  }

  constructor(renderer: Renderer2, elementRef: ElementRef, _platform: Platform, _focusMonitor: FocusMonitor) {
    super(renderer, elementRef, _platform, _focusMonitor);

  }
}

但是当我应用my-button属性时,它似乎没有任何效果。甚至不打印指令构造函数/ onInit中的console.logs。我不确定我做错了什么,因为我之前从未在Angular中使用过指令。

angular angular-material angular5 angular-directive
2个回答
0
投票

我不知道你会得到多少,但你说你正在使用一个属性,当你想要使用一个元素测试时


0
投票

你错过了你的模板。扩展仅允许访问您的代码,但模板不会自动扩展。

这是类似的..当您为组件创建npm包时。您需要导出类然后导出模板。

© www.soinside.com 2019 - 2024. All rights reserved.