我有一个输入字段,它应该包含数字。它被绑定到一个对象属性。我希望输入为4,5的输入在模型和视图中都自动转换为4.5。
HTML:
<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)检索到正确的对象。然后调用过滤器代码并返回正确转换的字符串。我希望模型和视图都更新为筛选后的值,但两者都更新为未筛选的值。我做错了什么?
发布于 2016-12-21 04:38:52
我在过去也遇到过同样的问题,但我没有创建自己的过滤器,而是走了一条不同的道路,找到了一些可以使用的东西。
assisrafael的angular-input-masks,这是我最喜欢的angular扩展之一:
https://github.com/assisrafael/angular-input-masks
示例:
http://assisrafael.github.io/angular-input-masks/
因为文档是作者写的,所以我不想过多地讨论它,这样将来就会过时了。作为一个快速参考,请查找ui-number-mask。
也许这不是对你问题的直接回答,因为它不是用句点代替逗号,而是让你键入小数。
顺便说一句,您可以使用ui-hide-group-sep取消数千个分隔符
我希望这对你有帮助,否则请留下评论,我很乐意继续帮助你!
-Helvio
https://stackoverflow.com/questions/41250708
复制相似问题