ng-input-tags实际上是否过滤结果?

时间:2015-12-30 14:23:14

标签: angularjs

ng-input-tags使用自动完成功能时,可用标记列表根本不会过滤,只是按照接收顺序显示源选项。这实在令人困惑,因为这意味着如果您有超过您设置的选项限制并输入' b'然后所有以' a'开头的选项首先显示,你永远不会看到以' b'开头的任何内容。我错过了一个选项还是什么?

示例选项代码

tags: [
          {text: 'a1'},
          {text: 'a2'},
          {text: 'a3'},
          {text: 'a4'},
          {text: 'a5'},
          {text: 'a6'},
          {text: 'a7'},
          {text: 'a8'},
          {text: 'a9'},
          {text: 'a10'},
          {text: 'b1'},
          {text: 'b2'},
          {text: 'b3'},
          {text: 'b4'},
          {text: 'b5'},
          {text: 'b6'},
          {text: 'b7'},
          {text: 'b8'},
          {text: 'b9'},
          {text: 'b10'},
          {text: 'b11'},
          {text: 'b12'},
        ]

它看起来像什么

enter image description here

3 个答案:

答案 0 :(得分:1)

来自the official site of ngTagsInput

  

重要:autocomplete指令不执行任何过滤。它为您的代码提供了用户输入的文本,因此您可以通过为您的应用程序使用适当的解决方案来返回匹配的建议列表。

答案 1 :(得分:0)

库的作者看起来默认最小长度已设置为 3 Reference

如果你想通过在html中添加属性min-length="1"来实现这一点,你必须自己指定m​​inLength。

答案 2 :(得分:0)

ng-input-tags显示代码中的所有数据,自动完成功能会显示代码中的所有元素,但搜索到的数据将为粗体字。要默认触发自动完成,最小长度设置为 3 ,在您的情况下触发自动完成,您需要将其更改为min-length="1"

对于演示,您可以查看demo。如果您键入除Tag以外的任何其他3个字符,则还会显示整个标记数据,但不同之处仅在于它们不是粗体字