Я пытаюсь реализовать malarkey как труба Angular2. Идея заключается в том, что вы сможете написать выражение типа ['foo','bar','baz'] | malarkey
и получить эффект ввода. Malarkey необходимо выбрать родительский элемент, поэтому я хочу, чтобы настроить свою трубку, чтобы захватить ElementRef и передать селектор до Malarkey:Использование ElementRef в трубе
import { Pipe, PipeTransform, ElementRef } from '@angular/core';
declare var malarkey: any;
@Pipe({
name: 'malarkey'
})
export class MalarkeyPipe implements PipeTransform {
...
elem: HTMLElement;
constructor(el: ElementRef) {
this.elem = el.nativeElement;
}
transform(value: [string], args?: {}): any {
if (!value) return value;
var elem = this.elem;
let opts = {
...
};
let act = malarkey(elem,opts);
return value.forEach(function(w) {
act.type(w).pause().delete();
});
}
}
я получаю исключение: Нет провайдера для ElementRef!
Что здесь происходит?
Что означает «вы можете ввести его в конструктор»? Я пытаюсь сделать это, но труба используется в forLoop, поэтому viewchild не работает для меня. – kosmos