Вы можете достичь желаемого результата, используя директиву, ограничивающую количество символов.
myApp.directive("limitTo", [function() {
return {
restrict: "A",
link: function(scope, elem, attrs) {
var limit = parseInt(attrs.limitTo);
angular.element(elem).on("keypress", function(e) {
var char = String.fromCharCode(e.which);
if (e.which != 8 && e.which != 0) {
if (char < '0' || char > '9') {
e.preventDefault();
}
else if (this.value.length == limit) {
e.preventDefault();
}
}
});
}
}
}]);
И тогда ваше поле ввода будет выглядеть примерно так:
<input type="number" limit-to="6">
Это не 'Точно отформатируйте ввод, однако он исключает ввод определенных символов с помощью кода символа.Вы можете разрешить добавление запятых во входные данные, добавив больше условных выражений в оператор if на основе кода символа.Если вы хотите отформатировать это, я бы порекомендовал использовать шаблон ng и регулярное выражение, чтобы получить точное форматирование, которое вам нужно.
Наконец, я бы рекомендовал использовать проверку формы angularjs.https://docs.angularjs.org/guide/forms Это очень удобно именно для того, что вы пытаетесь сделать.