嗨,当我使用 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/