javascript - 输入框中的 Angularjs 货币格式

标签 javascript angularjs

嗨!我有以下输入框:

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

我想弄清楚如何将“货币”过滤器应用于输入框。因此,当显示值时,它会显示 $ 符号和适当的货币符号。我可以使用 {{item.cost | currency }} 但我需要该框可编辑以在需要时更改值。 请让我知道如何将货币过滤器应用于输入框。 谢谢

最佳答案

试试这个

.directive('currencyFormatter', ['$filter', function ($filter) {


            formatter = function (num) {
              return $filter('currency')(num);
            };

        return {
          restrict: 'A',
          require: 'ngModel',
          link: function (scope, element, attr, ngModel) {
            ngModel.$parsers.push(function (str) {
             return str ? Number(str) : '';
            });
            ngModel.$formatters.push(formatter);

            element.bind('blur', function() {
              element.val(formatter(ngModel.$modelValue))
            });
            element.bind('focus', function () {
              element.val(ngModel.$modelValue);
            });
          }
        };
      }]);

和 html

<div ng-repeat="item in items">
    <input ng-model="item.cost" currency-formatter/>
  </div>
 <div ng-repeat="item in items">
    {{item.cost}}
  </div>

关于javascript - 输入框中的 Angularjs 货币格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23927695/

相关文章:

javascript - 在openlayers中是否有一种简单的方法来简化绘制的多边形中的顶点?

javascript - Google Maps API,在不使用坐标的情况下在国家/地区放置标记

javascript - For 循环在中途重复

javascript - Firefox 开发者版网络选项卡不显示本地 html 资源

javascript - 设置动态生成的 Angular ui 网格的列宽

javascript - NPM 每周下载量为零

javascript - ng-repeat 元素删除属性

javascript - 不被视为数字的变量

javascript - 在 Angular 中使用 Observable 数组时如何在模板中显示数据

javascript - 从 AngularJS 中的本地数组加载更多数据