Dies ist nicht die Antwort sein, möchten Sie vielleicht, aber vielleicht es hilft Ihnen ein wenig:
JsBin: http://jsbin.com/iyulaj/1/
Mit einer Direktive können Sie die Daten der Eingabe nehmen, parsen und dann an die Variable $scope
übergeben. Bitte sehen Sie: http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController ($parsers
und $formatters
. Ich nahm es von: Using angularjs filter in input element).
Die Direktive könnte nach einem Komma suchen und es durch einen Punkt ersetzen. Es könnte wie folgt aussehen:
angular.module('MyModule').directive('numberinput', function() {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attrs, ngModelController) {
ngModelController.$parsers.push(function(data) {
//convert data from view format to model format
return data.replace(',', "."); //converted
});
ngModelController.$formatters.push(function(data) {
//convert data from model format to view format
return data.replace('.', ","); //converted
});
// http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController
}
};
});
Das Eingabefeld:
<input ng-model='value' type='text' numberinput='' />
Beachten Sie auch, dass der Eingang ist nun ein Textfeld ein. Schau dir das an: http://jsbin.com/iyurol/1/
Die Eingabe ist ein Zahlenfeld. Aber geben Sie 11,5
ein und es wird ausgegeben ùndefined
(beachten Sie, dass ich in Deutschland lebe und wir die Komma-Notation verwenden). Der Browser "parst" also die Nummer nicht korrekt, wenn sie nicht in Punktnotation vorliegt, auch wenn Sie in Regionen mit Komma-Notation leben ...
Bitte korrigieren Sie mich, wenn da etwas nicht stimmt;)
in die gleiche Ausgabe Ich laufe für Deutschland Währung Formatierung auf Eingaben: Es sollte durch das
lang
Attribut angesteuert werden. – Lucas