我在Angular中创建了这个指令:
myApp.directive('dfnumber', function () {
return {
restrict: "A",
require: '?ngModel',
link: function (scope, element, attr, ngModel) {
ngModel.$parsers.unshift(function (newValue) {
var floatValue = parseFloat(newValue.replace(",", "."));
return parseFloat(floatValue.toFixed(2));
});
element.on("change", function (e) {
var floatValue = parseFloat(element.val().replace(",", "."));
element.val(floatValue);
});
}
};
});
它的任务是将输入“12,34”转换为有效数字“12.24”。输入字段和模型中的值。
如果我在input[type='text']
上使用它,它会按预期工作:
<div class="form-group">
<label for="number">Text input</label>
<input dfnumber="" type="input" class="form-control" ng-model="number" />
Number:{{number}}
</div>
但我对使用input[type='number']
感兴趣,因为它的最小和最大属性:
<div class="form-group">
<label for="number">Number input</label>
<input dfnumber="" type="number" min="0" max="100" class="form-control" ng-model="number2"/>
Number:{{number2}}
</div>
但是在这个数字输入上它没有用。我该如何解决这个问题?
请参阅我的JSFiddle:http://jsfiddle.net/dennismadsen/kL45085b/。