Angular - Como acessar e substituir innerHTML de uma diretiva

Estou tentando criar uma diretiva que modifique o elementoinnerHTML adicionando links às substrings que começam com@ símbolo.

Isto é o que eu tentei até agora,

linkify.directive.ts

  constructor(private elementRef: ElementRef, private renderer: Renderer2) { 
      let elementText = this.elementRef.nativeElement.innerHTML;
      // elementText = '@user mentioned you';
      console.log(`Element Text: ${elementText}`);
      this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', this.stylize(elementText));
  }

e eu estou usando assim

<p linkify> Hey @user check this out! </p>

Durante a depuração, fiz as seguintes observações,

this.elementRef.nativeElement.innerHTML sempre tem uma string vazia.this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', 'something'); éanexando something para o início do texto do elemento em vez de substituir.

Questão 1: Como acessar oinnerHTML de um elemento?

Questão 2: Como definir o innerHTML de um elemento de uma diretiva?

Stackblitz demonstrando o problema

Eu tentei a documentação paraRenderer2, mas não ajuda em nada.

questionAnswers(1)

yourAnswerToTheQuestion