如何限制md-chip值的字符?

时间:2016-08-29 05:05:01

标签: angularjs angular-material

我正在使用md-chips。现在我想将角色限制为10。

我尝试了md-maxlength,一个用于限制字符的custom指令,但它全部在textarea中工作而不是输入芯片

1 个答案:

答案 0 :(得分:1)

筹码限制

限制你可以添加到'筹码'模型的筹码数量:

<md-chips ng-model="myItems" placeholder="Add an item" md-max-chips="5">
</md-chips>

演示:https://jsfiddle.net/suunyz3e/290/

您不能在该输入中添加超过5个筹码。

不幸的是,md-chips指令的验证控制非常少:

从(AngularJS Material

  

验证

     
      
  • 允许验证回调
  •   
  • 无效筹码的hilighting风格
  •   

字符筹码限制

如果您遇到字符限制,可以执行以下操作:

<md-chips ng-model="myItems" placeholder="Add an item" md-max-chips="5"  md-on-add="validateChip($chip)">
</md-chips>

控制器:

angular.module('sandbox', ['ngMaterial']).controller('testCtrl', function($scope) {
    $scope.myItems = [];
    $scope.validateChip = validateChip;

    var characterLimit = 10;
    function validateChip($chip) {
        if (!$chip) return;
        // check if the current string length is greater than or equal to a character limit.
        if ($chip.length >= characterLimit) {
            alert('whooaaa, you breached the limit yo!');
            // remove the last added item.
            $scope.myItems.pop();
        }
    }
});

演示:https://jsfiddle.net/suunyz3e/291/