如何动态分配最大标签值?
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 上了解更多信息。
如果我分配 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 上了解更多信息。