扩展Angular2指令

时间:2016-10-27 14:30:40

标签: javascript angular clipboard extend

我正在尝试扩展angular2-clipboard npm包。我需要访问其ngOnInit()函数并覆盖它以适应特定的复制用例。

我是angular2的新手并且不确定如何做到这一点,到目前为止我尝试过的方式与下面的plunker相关联。我有困难,因为包被导出为一个名为ClipboardModule的模块,我需要指令。

这是插件github和plunker供参考:

  1. Github:https://github.com/maxisam/angular2-clipboard
    • 显示导出的文件是src / clipboard.module.ts
    • 他们的github也有一个链接到它的工作
    • 的plunker示例
  2. 我的傻瓜:https://embed.plnkr.co/sIxmFo/

1 个答案:

答案 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)()。 ...

相关问题