欧洲国家在输入十进制数字时使用逗号 (,) 而不是点 (.)。所以我想在用户输入时用逗号替换点号。我知道 input=number 可以做到这一点,但我需要对 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 = Convert 是错误的吗?
我认为没有必要像指令一样这样做。
说你的模板是
<input ng-model='someModel'>
在你的控制器中,
$scope.$watch('someModel',function(newVal){
$scope.someModel = newVal.replace(/,/g,'.');
})
ng-model 是双向绑定,所以它应该可以工作
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)