如何动态分配最大标签值?

How to assign max-tag value dynamically?

如果我分配 max-tags="1",它工作得很好,但是当我尝试使用 max-tags="maxtag()",通过 link 函数动态分配时,它显示输入框的红色边框。从视图来看,我正在尝试放置最大数量的标签。一切正常,但输入框是红色的, 它显示如下文本图像。像是警告。如何修复它。

工作演示

http://plnkr.co/edit/ooTucE4yqmLwMH9kNkO7?p=preview

<tags-input ng-model="modeldisplay" class="input-md" display-
property="data" on-tag-removed="removedCustomerTag()"
  placeholder="Select a User" on-tag-adding="addSearchedTag()" on-tag-added="tagAdded($tag)"
  enable-editing-last-tag="removedCustomerTag()" replace-spaces-with-dashes="false" max-tags="maxtag()"
  add-from-autocomplete-only="true">
  <auto-complete source="loadTags($query)" min-length="1" load-on-focus="true" load-on-empty="true" 
    max-results-to-show="10"  template="autocomplete.html">
  </auto-complete>
</tags-input>

ngTagsInput 的大多数选项只是 DOM 属性,因此您应该使用插值来动态更改它们:

<tags-input ng-model="modeldisplay" max-tags="{{maxtag}}" ...></tags-input>

这会奏效,但不如人们预期的那样。为了尽可能减少监视的数量,ngTagsInput 默认不会主动监视 DOM 属性,因此上面的 {{maxtags}} 表达式只计算一次。就您而言,这似乎就足够了。但如果不是,您可以通过在模块的配置块中使用 tagsInputConfigProvider 服务来更改该行为:

app.config(function(tagsInputConfigProvider) {
  tagsInputConfigProvider.setActiveInterpolation('tagsInput', { 
    maxTags: true 
  });
});

您可以在 ngTagsInput documentation 上了解更多信息。

最后,here is your updated Plunker