当欧洲国家输入十进制数字时,它们使用逗号(,)而不是点(.).因此,当用户输入输入时,我想用逗号替换点符号.我知道输入=数字这样做,但我需要支持IE.
我想指令是最好的吗?我尝试了下面的代码.但它失败了.
.directive('replaceComma',function(){ return { restrict: 'A',replace: true,link: function(scope,element,attrs){ scope.$watch(attrs.ngModel,function (v) { var convert = String(v).replace(",","."); attrs.NgModel = convert; }); } } });
转换变量是正确的.但是输入框中的值不会改变.所以我猜attrs.ngModel =转换,是错的?
解决方法
我认为没有必要像指令那样做.
说你的模板是
<input ng-model='someModel'>
在你的控制器中,
$scope.$watch('someModel',function(newVal){ $scope.someModel = newVal.replace(/,/g,'.'); })
ng-model是一种双向绑定,因此它应该可以工作