Как использовать DomSanitizer в трубе в Angular Dart? - PullRequest
0 голосов
/ 05 августа 2020

Я хотел создать простую трубу, которая добавит красочный маркер к искомому запросу. Я сделал следующее (работает более чем нормально в Angular)

@Pipe('mark')
class MarkPipe extends PipeTransform {
  DomSanitizationService _sanitizer;

  MarkPipe(this._sanitizer) {}

  transform(String input, String toMark) {
    if (input == null || input
        .trim()
        .isEmpty || toMark == null || toMark.isEmpty) {
      return input;
    }
    return _sanitizer.bypassSecurityTrustHtml(input.replaceAllMapped(toMark, (Match match) {
      return "<mark>${match.group(0)}</mark>";
    }));
  }
}

И как я пытаюсь его использовать

  <span [innerHtml]="value | mark:globalSearchControl.value">\
                </span>
                <!-- OR -->>
                {{value | mark:globalSearchControl.value}}

К сожалению, это не работает, потому что я получил следующая ошибка

Expected a value of type 'String', but got one of type 'SafeHtmlImpl'

Итак, как использовать DomSanitizertService с трубами в Angular Dart ?? Опять же - тот же код будет отлично работать в Angular

...