首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >AngularJS :扩展内置过滤器

AngularJS :扩展内置过滤器
EN

Stack Overflow用户
提问于 2012-11-08 18:43:01
回答 3查看 10K关注 0票数 14

我想修改currency过滤器以处理输入值中的自定义货币格式。

(例如,AUD 3.00 -> $3.00)。

一种选择是从头开始编写我自己的过滤器。然而,这似乎是很多重复,鉴于现有的过滤器是伟大的,我只需要先修剪几个字符的正面。

理想情况下,我会有这样的东西:

代码语言:javascript
运行
AI代码解释
复制
.filter('money', function($filters) {
    return function(text){
        var currency = text.substring(4)
        return $filters('currency')(currency)
    };
});

有以下两种方法:

  • 从另一个过滤器打电话?
  • 访问内部方法(例如,formatNumber()显示了这里

我还有什么别的选择吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-09 05:06:04

  • 从另一个过滤器打电话?

是的,我找到的最好的解决方案是创建一个新的过滤器:

代码语言:javascript
运行
AI代码解释
复制
angular.module('ui.filters').filter('customCurrency',
    [ '$filter', function(filter) {
      var currencyFilter = filter('currency');
      return function(amount, currencySymbol) {
        return currencyFilter(amount.substr(4), currencySymbol);
      }
    } ]);

这将像"AUD 30.00“这样的值转换为"$30.00”。

根据我的尝试,您不能在1.0.1版本中覆盖一个过滤器。我尝试使用相同的名称创建一个过滤器,并试图引用原始过滤器会导致无限循环。

这里是一个很好的考虑点:

然而,我建议不要这样做--即使这是允许的。预定义过滤器是AngularJS的公共API。如果AngularJS的某些部分在内部使用它们,或者有一天您安装了一些依赖于该过滤器的附加组件,该怎么办?

参见也是,基本相同的结论,即使我相信op并不真的需要一个自定义过滤器。

  • 访问内部方法(例如,formatNumber())?

如果函数没有公开,那么作者认为它不是他们想要提供的公共api。作者可能有一个特定的执行功能,这个功能可能不是很明显。

PS:模块是您需要过滤器的任何东西。我将不同模块中的一些功能分开,并在构建主模块时要求它们。

代码语言:javascript
运行
AI代码解释
复制
var App = angular.module('App', [ 'ui' ]);
票数 29
EN

Stack Overflow用户

发布于 2015-02-08 22:22:18

最好的方法就是,

<div> {{amount | currency:'$'}} </div>

在你的html里。这将自动删除与货币类型对应的前几个字符,并将其替换为您传递的字符串参数'$‘。

票数 1
EN

Stack Overflow用户

发布于 2012-11-09 08:40:06

角的货币筛选器允许您使用区域设置服务中的默认货币符号,也可以为筛选器提供自定义的货币符号。如果您的应用程序将只在一个地区使用,那么依赖默认的货币符号是很好的。然而,如果您预期其他地区的观众可能会使用您的应用程序,您应该提供自己的货币符号,以确保实际价值被理解。 例如,如果您想使用包含货币筛选器的绑定显示1000美元的帐户余额:{ 1000欧元},并且您的应用程序当前处于en-US区域设置。将显示“1000.00美元”。然而,如果在另一个地方(例如,日本)的人查看您的应用程序,她的浏览器将指定地区为ja,其余的1000.00元将被显示出来。这会让你的当事人很生气的。 在这种情况下,您需要在配置筛选器(例如,$1,000.00)时为货币筛选器提供一个货币符号作为参数,从而覆盖默认的货币符号。这样,角将始终显示‘美元$1000’的余额,并忽略任何地区变化。

参见关于本地化的说明:http://docs.angularjs.org/guide/i18n

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13301367

复制
相关文章
CURL的超时与重试
curl 的功能非常强大, 参数也很繁多, 我们不仅常用于命令行, 在php中也有类似 curl 拓展的实现, 并且也对 libcurl 库提供了非常好的支持.
用户2825413
2020/02/11
11.8K0
微服务超时与重试
经常被提起的两种超时:connection timeout、socket timeout
码农戏码
2021/03/23
1.5K0
Python设置函数调用超时,进程卡住
       最近写的Python代码不知为何,总是执行到一半卡住不动,为了使程序能够继续运行,设置了函数调用超时机制。
py3study
2020/01/09
2.5K0
Python:requests:详解超时和重试
网络请求不可避免会遇上请求超时的情况,在 requests 中,如果不设置你的程序可能会永远失去响应。 超时又可分为连接超时和读取超时。
丹枫无迹
2019/01/22
5.8K0
聊聊openfeign的超时和重试
openfeign是一种声明式的http客户端,它可以方便地集成到springcloud,像调用本地方法一样使用http方式调用远程服务。今天我们来聊一聊feign的超时和重试。
jinjunzhu
2020/11/19
5.8K0
Spring Cloud OpenFeign 超时与重试
1、连接超时 (connectTimeout) 和 读取超时 (readTimeout) 同时配置时,才会生效。
冯文议
2022/01/11
2.6K0
Linkerd 通过 ServiceProfile 实现超时和重试
Linkerd 服务网格解决的最重要问题之一是可观察性:提供服务行为的详细视图,Linkerd 对可观察性的价值主张是,它可以为你的 HTTP 和 gRPC 服务提供黄金指标,这些都是自动执行,无需更改代码或开发人员参与的。
我是阳明
2022/09/29
7240
Linkerd 通过 ServiceProfile 实现超时和重试
spring cloud feign调用超时重试retryer
在上面的介绍中,可以知道Retryer接口,Default类,重试异常类RetryerException,我们可以通过重写Retryer接口的方法continueOrPropagate来实现重试,比如:
xdd
2022/07/12
1.7K0
服务超时、重试次数、熔断如何设置
针对服务调用都要设置一个超时时间,以避免依赖的服务迟迟没有返回调用结果,把服务消费者拖死。
栋先生
2020/01/02
1.8K0
grpc-go之超时与重试(三)
go里面一般会使用Context进行超时控制以及参数传递, 其中超时控制可以使用context.WithDeadline()或者context.WithTimeout()实现, 二者实现效果是一致的.
Johns
2022/09/28
3K1
C# Task 实现任务超时取消、超时取消然后重试 超过重试最大次数就结束。
在C#中,我们可以使用Task类来实现任务超时取消、超时取消然后重试的功能。当一个任务超过指定的重试次数后,程序将自动结束。下面我们将详细介绍如何使用Task类和CancellationTokenSource类来实现这个功能。
郑子铭
2023/08/30
1.9K0
C# Task 实现任务超时取消、超时取消然后重试 超过重试最大次数就结束。
正则零宽导致iOS端uni-app报错:连接服务器超时,点击重试
一个 H5 项目中使用安卓设备一切正常,用 iOS 就显示 连接服务器超时,点击屏幕重试。
德顺
2023/08/25
1.6K0
正则零宽导致iOS端uni-app报错:连接服务器超时,点击重试
[PHP]socket的连接超时 与 读取/写入超时
1. stream_socket_client 函数中的超时时间是连接超时 , 默认是php.ini中的default_socket_timeout配置项
唯一Chat
2019/09/10
5K0
HttpComponents HttpClient连接池(7)-重试
在上一篇文章里我们介绍了 httpclient 连接池中空闲连接的清理,在这里我们主要介绍 http 连接的重试机制。
TA码字
2020/04/07
1.9K0
解决SSH连接Linux超时
在开发当中经常需要登录远程服务器,于是通过 ssh 或者 putty 登录,可是一转身,这厮就自动断开了。让人非常恼火,如何解决 SSH 连接 Linux 超时自动断开?
chuchur
2022/10/25
9.5K0
Memcached连接超时故障排除
在一次例行检查日志的时候,发现Nginx日志中出现了大量的PHP连接Memcached超时的报错信息,如下:
魏杰
2022/12/23
2.8K0
python接口自动化29-requests超时重试方法
“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败”,这是经常遇到的问题 requests.exceptions.ConnectionError: HTTPSConnectionPool(host=’www.github.com’, port=443): Max retries exceeded with url: / (Caused by NewConnectionError(‘<urllib3.connection.verifiedhttpsconnection object="" at="" 0x0000020f06524ac8="">: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。’,)) 一般出现这个问题的原因是:host=’www.github.com’ 主机地址没连上,使用 requests 发请求时,有些网站服务器不稳定,特别是国外的网站,经常会出现连接失败情况。 连接失败后,有时候会抛出上面异常,有时候会一直卡住,进入假死状态,没响应,也不会结束。</urllib3.connection.verifiedhttpsconnection>
上海-悠悠
2020/05/29
5.6K0
[TCP] tcp连接SYN超时重传次数和超时时间
当tcp进行三次握手的时候 , 第一步是客户端发送syn请求 , 服务端返回syn+sck , 客户端响应sck
唯一Chat
2021/04/22
8.7K0
Redis连接长时间不操作连接超时
springboot整合redis,长时间不操作连接超时 我原来的依赖是这个 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 后来一直出现连接超时 解决办法,把依赖改一下 <dependency> <g
高大北
2022/06/14
2.7K0
【韧性设计】韧性设计模式:重试、回退、超时、断路器
软件本身并不是目的:它支持您的业务流程并使客户满意。如果软件没有在生产中运行,它就无法产生价值。然而,生产性软件也必须是正确的、可靠的和可用的。
架构师研究会
2022/05/25
1.3K0
【韧性设计】韧性设计模式:重试、回退、超时、断路器

相似问题

运行shell脚本时如何在Jenkins中标记不稳定的构建

1516

运行shell脚本时出错

16

firebase项目中的Google运行Shell脚本

14

运行shell脚本时的NoClassDefFoundError

20

突然无法运行Shell脚本函数

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文