gpt4 book ai didi

javascript - 使用 Angular JS 将美元转换为美分并返回

转载 作者:行者123 更新时间:2023-11-29 15:26:42 34 4
gpt4 key购买 nike

我试图输入美元金额 (5.75) 并将其转换为 575 并存储在数据库中,然后再次在网站上显示为 5.75。

我有的东西只要 5.00 美元就能用,但不能用 5.75 美元。我所拥有的如下。

HTML

<input type="number" class="form-control" ng-model="admin.singleInfo.pricing.cost" monetary-input ng-change="admin.calculateSell(admin.singleInfo.$id); admin.singleInfo.$save();changesSaved()"/>

过滤器

.filter('MonetaryUnit', function () { 
return function (amount) {
return (amount / 100).toFixed(2);
}
})

指令

directive('monetaryInput', function($filter, $browser) {
return {
require: 'ngModel',
link: function($scope, $element, $attra, ngModelCtrl) {
var listener = function() {
$element.val($filter('MonetaryUnit')(value, false));
};

ngModelCtrl.$parsers.push(function(viewValue) {
return Math.round(parseInt(viewValue) * 100);
});

ngModelCtrl.$render = function() {
$element.val($filter('MonetaryUnit')(ngModelCtrl.$viewValue, false));
}

$element.bind('change', listener);
}
}
})

最佳答案

很简单。只需将 parseInt 更改为 parseFloat。请参阅下面的工作示例:

var app = angular.module("sa", []);

app.controller("FooController", function($scope) {

});

app.filter('MonetaryUnit', function() {
return function(amount) {
return (amount / 100).toFixed(2);
}
});

app.directive('monetaryInput', function($filter, $browser) {
return {
require: 'ngModel',
link: function($scope, $element, $attra, ngModelCtrl) {
var listener = function() {
$element.val($filter('MonetaryUnit')(value, false));
};

ngModelCtrl.$parsers.push(function(viewValue) {
return Math.round(parseFloat(viewValue) * 100);
});

ngModelCtrl.$render = function() {
$element.val($filter('MonetaryUnit')(ngModelCtrl.$viewValue, false));
}

$element.bind('change', listener);
}
}
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>


<div ng-app="sa" ng-controller="FooController">
<input type="text" ng-model="amount" monetary-input />

<br>Model value: {{amount}}
</div>

关于javascript - 使用 Angular JS 将美元转换为美分并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38536703/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com