javascript - Angular - 自定义管道不起作用?

标签 javascript angular typescript pipe

我正在尝试创建一个自定义管道,它将一个字符替换为另一个字符(用例:用空格分隔的单词替换连字符的单词),但在遵循在线指南和 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) 您没有正确调用自定义管道:

而不是:

<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);

Updated stackblitz

关于javascript - Angular - 自定义管道不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52079577/

相关文章:

Javascript RegEx 匹配 URL 但排除图像

css - Router Link Active 在以下情况下不起作用,他们是否有任何替代方法来动态激活按钮?

html - Angular 5 应用程序 CSS 固定一个 div 的位置,而第二个是可滚动的

node.js - 从 component.ts 文件加载不同的 component.html 文件?

Typescript 和 Vue.js - 属性在初始化之前使用

node.js - 如何在 Node 脚本中重用 Angular 6 API 服务?

javascript - 在子文件夹中添加 css 链接,php 扩展文件

javascript - 使用 JavaScript 生成 RSA-SHA1 签名

node.js - 出现错误通用类型 'InsertWriteOpResult<TSchema>' 需要 mongo 种子库中的 1 个类型参数

javascript - 在单个 prop React.js 中传递多个方法