Я использую директиву md-autocomplete как адрес для поиска почтового индекса. Я хочу ограничить то, что пользователь вводит в элемент управления только пятизначный почтовый индекс. Он должен быть числом и ограничен 5 номерами.
Как я могу достичь этого в md-autocomplete?
вы можете добиться этого с помощью фильтра: http://jsfiddle.net/uhmgp23h/2/
<body ng-app="MyApp">
<div ng-controller="MyController">
<input type="text" ng-model="zip" />
</div>
</body>
JS
var app = angular.module('MyApp',[]);
app.controller('MyController', function($scope, $filter)
{
$scope.zip = '';
$scope.$watch('zip', function(newVal, oldVal)
{
var value = String(newVal);
var number = value.replace(/[^0-9]+/g,'');
$scope.zip = $filter('numberFixedLen')(number,5);
});
});
app.filter('numberFixedLen', function()
{
return function(n, len)
{
var num = parseInt(n);
if (String(num).length > len) return n.substring(0, len);
return num;
};
});
Этот фильтр ограничивает поле только числами, а также ограничивает его до 5 символов. Этот фильтр будет работать с любым количеством символов, просто измените 5
на то, что вы хотите в этой строке $filter('numberFixedLen')(number,5);