javascript - 将货币过滤器应用于angularjs中的输入字段

标签 javascript jquery angularjs

嗨,当我使用 span 标签时,我可以像

<div ng-repeat="item in items">
    <span>
        {{item.cost | currency}}
    </span>
</div>

我想知道如何在输入标签中应用相同的货币过滤器。即

<div ng-repeat="item in items">
    <input type="text"  ng-model="item.cost | currency" />
</div>

当我尝试将货币过滤器应用于上述输入字段时,它不起作用。请让我知道如何将货币过滤器应用于输入字段。谢谢

最佳答案

我创建了一个简单的指令来处理格式化输入字段。这是一个jsfiddle例子。要使用它,请将其添加到您现有的代码中。

<div ng-repeate="item in items">
    <input type="text"  ng-model="item.cost" format="currency" />
</div>

并将此指令添加到您的代码中。

// allow you to format a text input field.
// <input type="text" ng-model="test" format="number" />
// <input type="text" ng-model="test" format="currency" />
.directive('format', ['$filter', function ($filter) {
    return {
        require: '?ngModel',
        link: function (scope, elem, attrs, ctrl) {
            if (!ctrl) return;

            ctrl.$formatters.unshift(function (a) {
                return $filter(attrs.format)(ctrl.$modelValue)
            });

            elem.bind('blur', function(event) {
                var plainNumber = elem.val().replace(/[^\d|\-+|\.+]/g, '');
                elem.val($filter(attrs.format)(plainNumber));
            });
        }
    };
}]);

关于javascript - 将货币过滤器应用于angularjs中的输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24615452/

相关文章:

javascript - 等高JS

Url.Content 中的 Javascript 变量

javascript - 返回顶部按钮不隐藏

即使 CORS 不允许 header 值,Angularjs 也会继续进行服务器调用

javascript - 无法从组合中获取数据以获取 firebase 数据

javascript - 为什么我必须使用 "this"来访问函数的内部属性

javascript - bootstrap.js 中的 emulateTransitionEnd,它来自哪里?

javascript - ajax 响应在 jquery 解析器之前反序列化

javascript - Angularjs:一个在 Controller 之间共享数据的工厂

angularjs - User.Identity.GetUserId() 和 RequestContext.Principal.Identity.GetUserId() 在 WEB API Controller 中返回 NULL。使用基于 token 的身份验证