2016-10-08 12 views
3

「タグ付け」機能にui-selectライブラリを使用しています。角度UI - 「タグ付け」オブジェクトに重複タグを追加する選択

私は各オブジェクトがIDと名前を持つオブジェクトの配列を使用しています。正常に動作しています。

存在しないタグを入力すると、新しいタグが作成されますが、唯一の問題はユーザーが既存のタグを入力すると新しいタグと既存のタグの両方が表示されることです。 ui-selectは、まだ存在していない場合にのみ新しいタグ付けを許可します。

enter image description here

私はアルゴリズムを入力した場合、それは/ディスプレイではなく、重複タグ挿入を可能よりも、既存の「アルゴリズム」タグを、選択する必要があります。

これに関する設定が見つかりません。タグ付けの例のページui-select tagging exampleでも同じ問題が発生しています。 これはそういうものではないと思います。これはui-selectで可能ですか、コードで処理する必要がありますか?どんな解決策ですか?

これは私のコードです:

<ui-select multiple tagging="questionVm.addNewTag" theme="select2" ng-model="addQueVm.newQuestion.tags" class="mdl-select"> 
    <ui-select-match placeholder="Enter tags"> 
     <span ng-bind="$item.name"></span> 
    </ui-select-match> 
    <ui-select-choices repeat="tag in (questionVm.allTags | filter: $select.search)"> 
     <span ng-bind="tag.name"></span> 
    </ui-select-choices> 
</ui-select> 

答えて

0

あなたはタグがあなたの大文字と小文字を区別しないタグセットでないときに値を返すだけにあなたのタグ付け機能を変更したいしようとしている。

questionVm.addNewTag = function(tag){    
    // this could be done somewhere else for efficiency 
    var lowerCaseTags = questionVm.allTags.map(
     function(obj){ 
      return obj.name.toLowerCase() 
     } 
    ); 

    // this keeps the new tag from being displayed unless it is really new 
    if(!(tag.toLowerCase() in lowerCaseTags)){ 
     return {name: tag} 
    } 
} 
関連する問題