angularjs - 在输入字段中用点替换逗号

标签 angularjs

欧洲国家在输入十进制数字时使用逗号 (,) 而不是点 (.)。所以我想在用户输入输入时用逗号替换点号。我知道 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'>

在您的 Controller 中,
$scope.$watch('someModel',function(newVal){
    $scope.someModel = newVal.replace(/,/g,'.');
})

ng-model 是双向绑定(bind),所以它应该可以工作

关于angularjs - 在输入字段中用点替换逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21427001/

相关文章:

javascript - 如何在不使用 DOM/ActiveXObject 的情况下读取带有 javascript/ionic 属性的 xml 标签之间的数据?

javascript - Highcharts 中是否有关于完全显示标签的可用选项?

javascript - 由于 UTC,Angular JS 中的 DatePicker 错误

angularjs - 在 AngularJS 中为选择选项添加 ng-dbclick

angularjs - Angular UI - 以编程方式设置事件选项卡

javascript - 如何仅在 Angular 中使用 ng-options 来转换值

javascript - Angular 数据绑定(bind)不允许获取对象中的最新数据

javascript - 如何将 ng-repeat 值或 ID 传递给我的附加元素?这可能吗?

javascript - 使用 $http.get 进行 Angular UI Typeahead

javascript - AngularJS - 轮询持久数据存储