Angular 8 - динамически вставить кнопку с обратным вызовом при появлении слова - PullRequest
0 голосов
/ 19 апреля 2020

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

Что я хочу сделать, это проанализировать текст и всякий раз, когда я нахожу определенное Вхождение слова (как, например, своего рода тег [innerc][/innerc]) вместо кнопки с onClick вызывает вызываемый обратный вызов.

Теперь, учитывая тот факт, что этот текст не написано пользователем вообще, я имею в виду использование свойства innerHTML и канала для анализа текста по выражениям Regex.

Что-то вроде:

<p [innerHTML]="value | putCallback : callOnClick"></p>

И канал разбирать все и помещать кнопки там, где это необходимо .. что-то вроде:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({name: 'putCallback'})
export class PutCallbackPipe implements PipeTransform {
  transform(value: string, callback: (val: string) => void): string {
    if (value.indexOf('[innerc]') != -1) {
      ... Parse the string, put buttons with regex and so on, then return... 
    }
    return value;
  }
}

Поскольку это решение не выглядит мне чистым, я хотел спросить ... Есть ли лучший вариант сделать это, не используя innerHTML?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...