问题标签 [angular2-pipe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
166 浏览

angular - 管道Angular2中的同步错误数据

在angular2中的管道内使用服务时出现同步错误,显然在信息从后端到达之前执行管道的“转换”方法

控制台中的响应

我的代码,file.pipe.ts

文件.service.ts

预先非常感谢

0 投票
1 回答
1815 浏览

angularjs - Angular 过滤器和 Angular2 管道之间的区别?

有人可以解释一下Angular FiltersAngular2 Pipes之间的概念区别吗?它们是为相同目的而建造的,不是吗?引擎盖下有什么区别吗?

甚至语法也完全一样。

0 投票
1 回答
1552 浏览

angular - Angular 2 Typescript Pipes 过滤器不起作用

我想通过 searchtext ngModel 文本框搜索 *ngFor 值,我正在从 dexie indexeddb 包装器绑定 ngFor。在运行我的程序时出现一些错误,错误如下,请检查并帮助我。

Search.html 页面:

component.ts 页面:

filter.pipe.ts 页面

错误:

0 投票
2 回答
21549 浏览

angular - 如果 value 不是 int 或 float 的字符串,如何告诉 angular (2) 货币管道按原样显示

货币管道应该足够智能以自动处理string, float,int等。

如果传递的值是string或不是intor float,它应该什么都不做并按原样显示传递的值。并且仅在为int或时显示格式化值float

它发生在 angularJs 中,但没有发生在 angular (2) 中

如果它是一个值,如何告诉货币管道逃逸string并进行货币格式化。decimal我期待像下面这样的东西。

例子

<div>Money:{{'xxx/vv/cc' | currency:'USD':true:'1.2-2'}}</div>应该显示 xxx/vv/cc

<div>Money: {{''11.99'' | currency:'USD':true:'1.2-2'}}</div> 应显示$11.99包括 --$ 符号。

但它没有发生。我得到的错误是caused by: Invalid argument 'Included' for pipe 'CurrencyPipe'

我认为它在 angularjs 中默认发生,但在 angular2 中默认情况下不会发生。

0 投票
2 回答
1188 浏览

angular - 如果输入中没有小数点,则角度扩展货币管道不格式化字符串/int

如果数字是字符串格式并且字符串中没有小数点,则角度货币管道不会将字符串/整数转换为货币格式。

假设金额为 12 并且我想显示 12.00 美元,如果通过了“12”,则它不会显示,但如果通过了 12.00,则它可以正常工作。

普朗克

0 投票
1 回答
1015 浏览

angular - Angular 2 Price Filter Pipe - 无法读取未定义的属性“0”

我想创建一个价格过滤器,根据两个变量过滤掉产品。这两个变量是最低价格和最高价格。

目前我只实施了最低价格以使事情更容易理解。但是在 | priceFilter:priceMinFilter*ngFor 指令之后添加管道时,我得到了这个“ Cannot read property '0' of undefined”错误。

我正在努力解决这个问题,任何人都可以提供一些建议或告诉我我在这里做错了什么吗?谢谢。

这是一个小插曲:https ://plnkr.co/tU82lO

app.component.ts

app.component.html

过滤器组件.ts

filter.component.html

过滤器.pipe.ts

谢谢!

0 投票
1 回答
596 浏览

angular - 无法在 Angular 2 中全局注册自定义管道

我有一个自定义管道可以做一些“事情”

然后我有两个模块Module1Module2每个模块的声明数组如下所示:

declarations: [DoSomethingAwesomePipe,...]

当我启动应用程序时,我收到以下错误:

metadata_resolver.js:369Uncaught 错误:DoSomethingAwsomePipe 类型是 2 个模块声明的一部分:Module1 和 Module2!请考虑将 DoSomethingAwsomePipe 移至导入 Module1 和 Module2 的更高模块。您还可以创建一个新的 NgModule,它导出并包含 DoSomethingAwsomePipe,然后在 Module1 和 Module2 中导入该 NgModule。

所以我完全按照它的描述做,并PipesModule在我这样设置的模块的声明中创建一个declarations: [DoSomethingAwesomePipe,...]

然后我在两者中都导入了这个模块,Module1然后Module2我得到以下错误:

zone.js:388 未处理的承诺拒绝:模板解析错误:找不到管道“doSomethingAwesome”(“

我真的很难过。我尝试将导入移动到根模块,但没有得到任何地方。

感谢任何帮助。

谢谢

0 投票
2 回答
6365 浏览

angular - Angular 2 直接向管道添加去抖动功能

我编写了一个管道,它根据给定的查询过滤掉一组对象。它工作得很好,但我想做的是直接向这个管道添加一个去抖动函数,而不是如果可能的话将它添加到输入的 keyup 事件中。

我一直在寻找解决方案,但似乎找不到任何特定于我正在寻找的东西。

关于如何在这个管道中实现它的任何想法?

0 投票
1 回答
20316 浏览

angular - Angular 2:在 ngModel 中使用管道

我在我的一种形式中使用了 JQuery 输入掩码[(ngModel)],但由于某种原因,它们不能一起工作。单独使用其中任何一个都可以正常工作,但是将两者结合起来会完全中断[(ngModel)],并且新输入不会被发送回组件。在为此苦苦挣扎了一段时间后,我认为使用 Angular 2 的管道将是一个很好的解决方案,但是我也不知道如何让这两者一起工作。

这是我用来测试管道的一些代码

如果我输入 12345,<p>下面的标签将显示 12,345.00,这正是我希望它过滤的方式,但我不想让过滤后的数量低于输入,我希望输入本身显示 12,345.00。将相同的管道添加到ngModel这样的:[(ngModel)]="Amount | number:'1.2-2'"给我以下错误。

解析器错误:在 [Amount | 中的第 10 列的操作表达式中不能有管道 数字:'1.2-2'=$事件]

如何在输入中使用管道(或输入掩码)[(ngModel)]

0 投票
1 回答
5685 浏览

angular - Angular 2:ngModel 输入上的“数字”管道的光标问题

我有一个输入,我想像货币一样显示。我希望只允许两位小数,并且只允许数字,同时在必要时自动添加逗号。基本上,如果用户键入“12345”,我希望输入自动显示为“12,345.00”。“12,345”也可以接受,但如果他们输入“12345.5”,则需要显示为“12,345.50”。我正在尝试使用管道来完成此操作并决定使用“数字”管道,因为我不希望显示货币符号(我在输入之前已经有一个美元符号作为标签)。

这是我的代码:

我有几个问题。

  1. 当我输入一个数字时,它会自动在末尾添加一个小数和两个 0,这很好,但它也会将光标添加到最后,所以如果我输入“55”,而不是显示为“55.00” ,它显示为“5.01”(我假设它将其解释为 5.005,然后将其四舍五入为 5.01)。如何防止光标移动到最后,以便用户可以在看到预期结果的同时自然地键入?
  2. 此过滤器实际上并未将输入限制为小数点后 2 位。如果我输入“1234”,它将显示为“1.00234”。它还允许我添加多个小数点。如何将其限制为小数点后只有 2 位?
  3. 输入不正确很容易破坏这个管道。例如,如果用户输入一个字母,我会在控制台中收到一个错误,内容如下:

管道“DecimalPipe”的参数“11.00a”无效

在此错误之后,过滤器完全停止工作。

如果我将输入设置为type="number"并输入 1234,则值将为 1,234,但输入将消失,我将在控制台中收到以下消息:

指定的值“1,234”不是有效数字。该值必须与以下正则表达式匹配:-?(\d+|\d+.\d+|.\d+)([eE][-+]?\d+)?

使用 JQuery Inputmask 在限制/显示输入方面给了我想要的结果,但它破坏了我的 ngModel 并将值设置为空,所以这不是我的选择,除非有人知道解决方法。

我可以对管道进行更改以获得我想要的结果吗?我怎样才能让它工作?