首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >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

复制
相关文章
java 项目引用类型不明确
将 destroy-method="close"删除后运行就可以,运行成功后,再次添加上,项目可以正常运行。 原因未知。
用户2657851
2020/03/04
9030
xamarin android listview的用法
listview也许是用的非常频繁的一个控件之一,下面我写一个xamarin的listview栗子,大家尝一尝xamarin android开发的乐趣。原谅我的大小写吧.
全栈程序员站长
2022/09/15
9040
xamarin android listview的用法
默认情况下 80% 的 Android 应用正在使用加密流量
谷歌方面表示,截至 2019 年 10 月,五分之四(80%)可通过官方 Play 商店下载的 Android 应用程序正在使用 HTTPS 加密各自的网络流量。而对于直接针对 Android 9 的应用,该数字甚至更高,达到 90%。这意味着进入或离开这些应用程序之一的流量是经过加密的,第三方无法拦截或读取。
用户8639654
2021/09/22
4260
C#-Xamarin的Activity传值与Fragment引用
我们学习任何一个新框架时,肯定都需要学习它的子页面用法,因为子页面是封装公共内容最好的容器。
Kiba518
2019/03/22
1.1K0
C#-Xamarin的Activity传值与Fragment引用
C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码
GuZhenYin
2018/01/04
3.1K0
C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码
Xamarin Forms WPF 干掉默认的窗口导航条
在创建默认的 Xamarin Forms WPF 应用,将和 UWP 应用的界面不相同,在 WPF 项目会显示顶部蓝色的一条,看起来不好看,那么可以如何干掉他
林德熙
2020/08/11
1.3K0
Xamarin Forms WPF 干掉默认的窗口导航条
默认情况下安装的应用程序C盘后提示权限不足,当你开始介意。。。
最近,不少用户抱怨的经销商。正在使用win 7我们的计算机系统上安装软件后,提示权限不够开放系统,无法启动软件。
全栈程序员站长
2022/07/06
9540
Xamarin Android 修改主题样式
app的风格的选项 可以按住ctr然后点击Theme.AppCompat.Light.DarkActionBar就会跳转
宿春磊Charles
2021/11/15
2.1K0
Xamarin Android 修改主题样式
C++核心准则​Con.3:默认情况下,传递参照常量的指针或引用
To avoid a called function unexpectedly changing the value. It's far easier to reason about programs when called functions don't modify state.
面向对象思考
2020/08/18
4370
Spring Batch 在默认情况下的任务执行
考察项目:https://github.com/cwiki-us-spring/cwiki-us-spring-batch-examples 你可以 Check out 到本地后运行:
HoneyMoose
2020/02/19
6790
客户端软件GUI开发技术漫谈:原生与跨平台解决方案分析
如果你想深入的美化UI,需要耗费很大的力气,对于目前主流的CSS样式表来讲,美化Winform的界面以及自定义控件是需要耗费更多的时间的。
周陆军
2020/06/22
14.7K0
Spring Batch 在默认情况下的任务执行
考察项目:https://github.com/cwiki-us-spring/cwiki-us-spring-batch-examples 你可以 Check out 到本地后运行:
HoneyMoose
2020/02/24
1.2K0
.NET MAUI 性能提升(下)
(本文阅读时间:9 分钟) 继上一篇文章🔗为大家介绍了启动性能的优化,今天我们来看一看其他令人欣喜的性能提升。 主要内容 ❖ 应用程序大小的改进 修复默认的MauiImage大小 删除Application.Properties 和DataContractSerializer 修剪未使用的HTTP实现 ❖ .NET Podcast示例中的改进 删除Microsoft.Extensions.Http用法 删除Newtonsoft.Json使用 在后台运行第一个网络请求 ❖ 实验性或高级选项 修剪Resour
JusterZhu
2022/12/07
2.5K0
xamarin.android_云开发实战项目
试读文档下载地址:http://pan.baidu.com/s/1jGEHhhO 密码:vcfm
全栈程序员站长
2022/11/03
1.5K0
MYSQL 默认情况下 MYSQL 是ACID 吗?
最近的世界变化是快, 平行宇宙"被发现", 地球人是外星人的培育的"猿猴",到被抛弃,每天都在刷新. 前几天的MYSQL的事务错误不会滚的问题, 有同学反映没有太明白.
AustinDatabases
2020/07/06
1.6K0
.NET MAUI 性能提升(上)
.NET多平台应用程序UI (MAUI)将android、iOS、macOS和Windows API统一为一个API,这样你就可以编写一个应用程序在许多平台上本机运行。我们专注于提高您的日常生产力以及您的应用程序的性能。我们认为,开发人员生产率的提高不应该以应用程序性能为代价。
JusterZhu
2022/12/07
8.7K2
.NET MAUI 性能提升(上)
Xamarin 学习笔记 - 配置环境(Windows & iOS)
一直以来,做为一名Web以及桌面开发人员,我一直在使用.NET框架和C#语言,而在某些项目中,Angular会在前端占有主导地位。 最近,我们总是谈论移动应用程序开发的未来,但我本身实在没有天赋转向另一种语言。最近几年,针对我的社交项目,我尝试使用Hybrid框架和AngularJS以及Ionic,Cordova一起构建一个示例……但一切并不像我想象得那样容易。此后微软于2016年2月份收购了Xamarin并在之后不久宣布了将Xamarin开源。自此微软生成用C#开发的软件将不仅仅能够运行在Windows上,而是可以在任何设备上运行。继微软收购Xamarin之后,对可以将C#开发与全功能的跨平台移动开发工具相结合,使用开发工具共享业务逻辑代码,以提供完全原生的应用程序的专业人士的需求日益增加,这一点自从2011年之后就一发不可收拾。
葡萄城控件
2018/07/24
6.3K0
Xamarin 学习笔记 - 配置环境(Windows & iOS)
Visual Studio 2017 15.7 下的.NET Core
Visual Studio 2017 15.7版本发布,对.NET Core项目的主要相关改变如下, 同时对Xamarin、Android和iOS项目的支持上也做了较大改进。 一. .NET Core
FlyLolo
2018/06/21
3.1K0
Visual Studio 2017 15.7 下的.NET Core
Visual Studio 2017 15.7版本发布,对.NET Core项目的主要相关改变如下, 同时对Xamarin、Android和iOS项目的支持上也做了较大改进。 一. .NET Core
FlyLolo
2018/05/17
3.3K0
C#-Xamarin的Android项目开发(二)——控件应用
Android的控件和控件样式非常特别,它是一种内联特别高的设计模式,换句话说,它是非常烂的设计。。。。
Kiba518
2019/02/21
1.4K0
C#-Xamarin的Android项目开发(二)——控件应用

相似问题

具有AS别名的不明确的列引用

10

Xamarin android类名引用

13

未找到Xamarin android引用

124

具有包名的Xamarin.Android启动应用程序

14

不明确的引用

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档