我正在尝试扩展angular2-clipboard npm包。我需要访问其ngOnInit()
函数并覆盖它以适应特定的复制用例。
我是angular2的新手并且不确定如何做到这一点,到目前为止我尝试过的方式与下面的plunker相关联。我有困难,因为包被导出为一个名为ClipboardModule的模块,我需要指令。
这是插件github和plunker供参考:
答案 0 :(得分:0)
这就是定义服务的方式,而不是指令。
@Injectable()
export default class CopyDirective extends ClipboardModule {
public cm: any; // better way than any?
constructor(cm: ClipboardModule) {
super();
this.cm = cm;
}
}
指令需要@Directive()
装饰器而不是@Injectable()
目前不支持使用组件,指令和管道进行继承。
我还不明白为什么要在扩展指令时扩展模块。您需要直接扩展指令类。
另见https://github.com/angular/angular/issues/11606
但有些情况可以奏效。 通常你需要重复子类中的所有装饰器。
@Component()
,@Directive()
,@Input()
,@Output()
,@ViewChild(ren)()
,@ContentChild(ren)()
。 ...