Angular Контекст шаблона трубы - PullRequest
2 голосов
/ 12 февраля 2020

Можно ли получить точный элемент местоположения / контекста / обтекания html, где канал используется внутри шаблона (без необходимости передавать трубе какие-либо дополнительные аргументы)?

Я пытался внедрить ElementRef в конструктор канала, но это возвращает весь элемент компонента, а не точное местоположение DOM.

Пример шаблона:

...
<div>
    {{ 'blah' | myPipe}}
</div>
...

Я бы хотел получить доступ к псевдоэлементу точно где оценивается труба или упаковка div.

Ток Angular версия 8

Ответы [ 2 ]

2 голосов
/ 13 февраля 2020

In Angular 9 Плющ ElementRef, введенный в трубу, указывает на место, где эта труба фактически используется.

test.pipe.ts

@Pipe({
  name: 'test',
})
export class TestPipe implements PipeTransform {
  constructor(private el: ElementRef) {
    console.info("-->", this.el);
  }
...

html

<div class="bob">
  {{ 'mystring' | test }}
</div>

enter image description here

Ng-Run Пример

0 голосов
/ 12 февраля 2020

В общем случае Pipe похожа на функцию, облегчающую манипулирование входными данными перед привязкой к целевому свойству. Он не предназначен для манипулирования DOM. Если вы хотите манипулировать DOM, сделайте это в компоненте или определите для него директиву.

...