Я хотел создать простую трубу, которая добавит красочный маркер к искомому запросу. Я сделал следующее (работает более чем нормально в 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