Глобальный .relace Angular6 - PullRequest
       8

Глобальный .relace Angular6

0 голосов
/ 18 сентября 2018

Я пытаюсь добиться чего-то подобного в angular6:

https://jsfiddle.net/o8xufvyj/2/

Способ заменить все вхождения символа в строке.

{{string.replace(/-/g, ' ')}}

Не работает в Angular6. Как бы я сделал что-то подобное в angular6 без многократного использования .replace?

Ответы [ 4 ]

0 голосов
/ 18 сентября 2018

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

заменить трубу

@Pipe({
  name: 'replace'
})
export class ReplacePipe implements PipeTransform {

  transform(value: string, regexValue: string, replaceValue: string): any {
    let regex = new RegExp(regexValue, 'g');
    return value.replace(regex, replaceValue);
  }

}

шаблон

<p> {{stringText | replace:' ':'--'}}</p>
<p> {{stringText | replace:'[a-z]':'--'}}</p>
<p> {{stringText | replace:'[A-Z]':'--'}}</p>
<p> {{stringText | replace:'[a-zA-z]?':'**'}}</p>

демонстрация стекаблиц

0 голосов
/ 18 сентября 2018

Назначить результат для публичной переменной.

Компонент

getFormatText (текст) { вернуть text.replace (/ - / g, ''); }

Template

{{getFormatText (текст)}}

0 голосов
/ 18 сентября 2018

Причина, по которой ваш код не работает, заключается в том, что Angular пытается разрешить все, что вы поместили между "{{}}" из его текущей области (например, контроллера).Однако в вашей области видимости нет ничего похожего на «string.replace», поэтому она не может разрешить это значение.

Решение состоит в том, чтобы просто поместить в ваш контроллер функцию, которая изменяет данную строку, иверните его, а затем используйте эту функцию в своем HTML.

public replace(content: string) {
    return content.replace(/-/g, " ");
}

А затем в своем HTML:

{{replace("content-to-be-modified")}}
0 голосов
/ 18 сентября 2018

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

Кстати, это плохая идея, пытаться сделать такую ​​вещь в шаблоне, так как замена будет выполняться каждый раз, когда обновляется представление.

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