Angular material 使用 md-max-length 和 pattern 设计 md-autocomplete
Angular material design md-autocomplete with md-max-length and pattern
我正在使用 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);
我正在使用 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);