角度材料设计md-autocomplete,具有md-max-length和模式

时间:2015-06-26 21:55:50

标签: angularjs material-design md-autocomplete

我正在使用 md-autocomplete 指令作为邮政编码查找的地址。我想将控件中的用户类型限制为仅限五位数的邮政编码。它必须是数字,并限制为5个数字。

如何在 md-autocomplete 中实现这一目标?

1 个答案:

答案 0 :(得分:2)

您可以使用过滤器实现此目的: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);