4

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

工作演示

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>
4

1 回答 1

4

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

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

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

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

您可以在ngTagsInput 文档中了解更多信息。

最后,这是您更新的 Plunker

于 2016-07-02T05:26:31.227 回答