Javascript 输入字段在控制器端以不同方式保存(angularjs)

Javascript 输入字段在控制器端以不同方式保存(angularjs),javascript,angularjs,string,validation,directive,Javascript,Angularjs,String,Validation,Directive,这是你的电话号码。 当用户在输入中输入时,逗号会被动态添加。这就是使用指令的目的。它还显示小数点后2位 我的问题是- 例如,如果我在输入字段中键入“2300.34”并单击“提交”,它将在控制器端给我一个230034字符串。我已经使用console.log检查了我在控制器端获得的数据。我希望数据与控制器上的数据保持一致。我怎样才能做到这一点 JS和指令 var app = angular.module('App',[]); app.controller('MainCtrl', function (

这是你的电话号码。 当用户在输入中输入时,逗号会被动态添加。这就是使用指令的目的。它还显示小数点后2位

我的问题是- 例如,如果我在输入字段中键入“2300.34”并单击“提交”,它将在控制器端给我一个230034字符串。我已经使用console.log检查了我在控制器端获得的数据。我希望数据与控制器上的数据保持一致。我怎样才能做到这一点

JS和指令

var app = angular.module('App',[]);
app.controller('MainCtrl', function ($scope) {

                        $scope.getdata = function(){
                            console.log($scope.amount);
                        }

});



app.directive('format', ['$filter', function ($filter) {
return {
    require: 'ngModel',

    link: function (scope, elem, attrs, ctrl) {
        if (!ctrl) return;


        ctrl.$formatters.unshift(function (a) {
            return $filter(attrs.format)(ctrl.$modelValue);
        });


        ctrl.$parsers.unshift(function (viewValue) {
            var plainNumber = viewValue.replace(/[^\d|\-+]/g, '');
            elem.val($filter('number')(plainNumber/100,2));
            return plainNumber;
        });
    }
};
}]);
HTML部分

<body ng-app="App">
<div ng-controller="MainCtrl">
  <input type="text" ng-model="amount" format="number" />
  <input type="submit" ng-click="getdata()" />
</div>

只需在
$parser中使用JavaScript内置的
parseFloat
toFixed
方法即可。unshift
函数:

var plainNumber = parseFloat(viewValue.replace(/[^\d|\-+]/g, '')).toFixed(2);
而且

return plainNumber/100.00

如果我使用您的产品线,2300.34现在保存为230034.00code@Ayesha更新了答案