正在从数据库中获取10.00,520.00值,但是当我绑定到输入它显示为10和520如何填写文本框中输入精确的十进制值angularjs
例如
<input type="text" ng-model="Amount">
$scope.Amount =10.00 ;
值结合文本框为10,但我想绑定10.00
正在从数据库中获取10.00,520.00值,但是当我绑定到输入它显示为10和520如何填写文本框中输入精确的十进制值angularjs
例如
<input type="text" ng-model="Amount">
$scope.Amount =10.00 ;
值结合文本框为10,但我想绑定10.00
检查下面的工作代码。
var app = angular.module('plunker', []);
app.directive('validNumber', function() {
return {
link: function (scope, element, attrs, ngModelCtrl) {
setTimeout(function() {
var digits = element.val().split('.')[1];
digits = digits == null ? 2 : digits.length;
element.val(parseFloat(element.val()).toFixed(digits));
}, 100);
}
};
})
app.controller('MainCtrl', function ($scope) {
$scope.Amount = 10.0001;
});
<script data-require="[email protected]" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.11/angular.min.js" data-semver="1.5.11"></script>
<div ng-app="plunker" ng-controller="MainCtrl">
<input type="text" ng-model="Amount" valid-number />
{{Amount}}
</div>
很好的解决方案,但如果数据从服务器到达3个地方,那么你的代码将无法工作,因为你已经硬编码了指令中的两个地方。 –
谢谢@Gaurav!我会更新它来处理这种情况。 –
我已经更新了代码 –
如果你的量是整数,那么你必须把它转换成字符串,然后才能显示值像你想,因为你已经在这里输入文本类型 –