2016-10-27 10 views
0

Я пытаюсь расширить пакет гаммы angular2-clipboard. Мне нужно получить доступ к его функции ngOnInit() и переопределить его в соответствии с конкретным вариантом использования для копирования.Extend Angular2 Директива

Я новичок в angular2 и не знаю, как это сделать, так, как я его пытался до сих пор связать в плункере ниже. У меня возникают трудности, так как пакет экспортируется в виде модуля ClipboardModule, и мне нужна директива.

Вот плагин GitHub и plunker для справки:

  1. Github: https://github.com/maxisam/angular2-clipboard
    • Файл, который показывает экспорт SRC/clipboard.module.ts
    • Их GitHub также имеет ссылка на пример использования плунжера
  2. Мой плункер: https://embed.plnkr.co/sIxmFo/

ответ

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)(). ...

+0

Эй, спасибо за ответ! Проблема, с которой я столкнулась с этим пакетом, заключается в том, что он экспортируется как модуль. Есть ли способ достичь через ClipboardModule доступа к директиве? Я не думал, что должен попытаться сделать что-то вроде 'import {ClipboardDirective} из« node/modules/etc »' – caraclarke

+0

Я вижу. Я не знаю об этом. Я не активно использую Angular2 с TS (только Dart). –

+3

@caraec Попробуйте этот 'import {ClipboardDirective} из" angular2-clipboard/src/clipboard.directive ";' – yurzui

 Смежные вопросы

  • Нет связанных вопросов^_^