我有一个应该包含数字的输入字段。 它绑定到一个对象属性。 我希望输入为4,5的输入在模型和视图中自动转换为4.5。
<input data-ng-model="productContent(product.Id).Org" value="{{productContent(product.Id).Org | replaceComma}}" />
控制:
$scope.productContent = function (prodId) {
var content = $.grep($scope.productsContent, function (el) { return el.ProdId === prodId });
return content[0];}
app.filter('replaceComma', function () {
return function (val) {
return (typeof val) == "string" ? val.toString().trim().replace(",", ".") : val
};
});
当我输入数字时,首先模型(productContent)检索正确的对象。然后调用过滤器代码并返回正确转换的字符串。我希望模型和视图都更新为过滤值,但两者都使用未过滤的值进行更新。我做错了什么?
答案 0 :(得分:0)
我过去遇到过同样的问题,但我没有创建自己的过滤器,而是采用了不同的路径,找到了可以使用的东西。
angular-input-mask由assisrafael为我们最喜欢的角度扩展之一:
https://github.com/assisrafael/angular-input-masks
示例:
http://assisrafael.github.io/angular-input-masks/
由于作者已经编写了文档,我不想对其进行广泛的讨论并在将来过时。作为快速参考,请查找ui-number-mask。
也许这不是你问题的直接答案,因为它不是用句号替换逗号,而是让你输入小数。
另外,您可以使用ui-hide-group-sep
我希望这会有所帮助,否则请发表评论,我将很乐意继续为您提供帮助!
-Helvio