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>

それは機能しますが、期待するほどではありません。監視の数をできるだけ少なくするために、ngTagsInput はデフォルトで DOM 属性をアクティブに監視しないため、{{maxtags}}上記の式は 1 回だけ評価されます。あなたの場合、それで十分なようです。ただし、そうでない場合はtagsInputConfigProvider、モジュールの構成ブロックでサービスを使用して、その動作を変更できます。

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

詳細については、ngTagsInput のドキュメントを参照してください。

最後に、これが更新された Plunkerです。

于 2016-07-02T05:26:31.227 に答える