angularjs - ngTagsInput 在最大标签数后禁用输入

标签 angularjs ng-tags-input

我有一个问题,也许有人在您的应用程序中使用了 ngTagsInput

是否有选项可以在插入最大标签数量后禁用输入?

最佳答案

ngTagsInput 有一个 ngModel 接受标签数组,因此您可以使用 ngDisabled 禁用输入。

问题是,如果您的输入被禁用,您将无法删除任何现有标签并进一步编辑输入。我不建议这样做。

但是你还有一些选择......

  1. 验证您拥有的标签数量

API docs声明 max-tags 属性用于验证输入中标签的最大数量,当超过限制时,验证状态将变为 $invalid,您可以然后阻止表单提交。

maxTags - number - Sets maxTags validation error key if the number of tags added is greater than maxTags.

例如:

<tags-input ng-model="tags" max-tags="7">
  <auto-complete source="loadTags($query)"></auto-complete>
</tags-input>
  • 使用 on-tag-added 回调属性来捕获用户超出允许的标签数量的情况,并删除他输入的任何新标签,而不使用验证标志
  • HTML:

    <tags-input ng-model="tags" 
        on-tag-added="onTagAdded($query, 7)"></tags-input>
    <p>Model: {{tags}}</p>
    

    Controller :

    $scope.onTagAdded = function(tag, limit) {
        if ($scope.tags.length == limit+1) {
            $scope.tags.pop();
        }
    }
    

    在上面的示例中,我们将标签数量限制为 7 个。

    关于angularjs - ngTagsInput 在最大标签数后禁用输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42817359/

    相关文章:

    javascript - ngTagsInput - 设置 onTagAdding 回调

    javascript - ng-tags-input 无法从自动完成中选择选项

    ng-tags-input - 使 ngTags 可滚动

    javascript - Angularjs:在更改事件上使用指令下拉列表中的参数调用 Controller 方法

    javascript - Angular $resource 然后不返回数据

    javascript - 无法从 $q 获取数据到作用域

    javascript - 设置 addFromAutocompleteOnly 时,剩余文本留在输入字段中

    css - ngTagsInput CSS 问题

    javascript - 当放置多个表达式时 ng-disabled 会失败

    javascript - 纯 JS 中的 Angular ng-hide 指令