Угловая - нестандартная труба не работает? - PullRequest
0 голосов
/ 29 августа 2018

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

stackblitz

pipe.ts

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

  transform(value: string, replace: string, withThis: string): any {
    return value.replace(replace, withThis);
  }

}

Использование html

<!-- hyphenate = 'some-hyphenated-string' -->

<div>{{hyphenated | replace: {replace: '-', withThis: ' '} }}</div>

1 Ответ

0 голосов
/ 29 августа 2018

1) Вы неправильно называете свой пользовательский канал:

Вместо:

<div>{{hyphenated | replace: {replace: '-', withThis: ' '} }}</div>

Использование:

<div>{{hyphenated | replace: '-': ' '}}</div>

2) Ваше использование replace заменяет только первое вхождение в строке:

Вместо:

return value.replace(replace, withThis);

Использование:

return value.replace(new RegExp(replace, 'g'), withThis);

Обновлен стек

...