0

私はAngularjs UI selectを使用しています。私は問題に直面している。Angularjs UI multiselect with initial selection

これは私のコードです:

Javascriptを:

$scope.user.SelectedCategories 
$scope.Categories= [ 
    { value: 'Reading', name: 'Reading Books',Id : 4 }, 
    { value: 'Sports', name: 'Physical Activity',Id : 9 }, 
    { value: 'Movies', name: 'Entertainment',Id : 7 }, 
    { value: 'Video Games', name: 'Passion',Id : 11 } 
]; 

HTML:

<div class="input-group"> 
     <ui-select multiple ng-model="user.SelectedCategories" theme="bootstrap" sortable="true" close-on-select="false" style="width: 350px;"> 
     <ui-select-match placeholder="Select Categories...">{{$item.Value}}</ui-select-match> 
     <ui-select-choices repeat="category.Id as category in Categories">{{category.Value}} 
     </ui-select-choices> 
</div> 

今ページreload.Selectedカテゴリで選択して、私が選択したカテゴリを表示する方法データベースに保存され、ページのリロード時には選択肢として表示するにはどのようにすればいいのですか?また、ドロップダウンリストに表示しないでください。私の問題の

編集 半分は$ scope.SelectedCategoriesが、問題の残りの部分は、これらのカテゴリはまた、ドロップダウンに表示されているデータベースからフェッチされた選択したカテゴリを割り当てるnicostの提案によって解決されます。

ui multiselectのデフォルトの動作は、ドロップダウンから1つのカテゴリを選択すると、選択した上のテキストボックスにそのカテゴリが表示され、そのカテゴリがドロップダウンリストから削除され、選択したカテゴリドロップダウンリストに表示されます。

私のケースでは、ページの再読み込み時に使用可能なカテゴリのリストから選択したカテゴリを削除すると、ドロップダウムには表示されませんが、選択したカテゴリを削除するとそのカテゴリは表示されませんドロップダウンリストに表示されます。

+0

問題は厳密には、選択したアイテムをドロップダウンリストに表示しないようにしたいのですか?選択したカテゴリはページのリロード後もはや選択されませんか? – nicost

+0

@nicostはい選択されたカテゴリは選択されていません。どのように選択されたものを表示できますか? – sqlcte

+0

あなたが言うように、それらはデータベースに格納されているので、ページロード時(コントローラがロードされたとき)にそれらを取得し、それらを$ scope.SelectedCategoriesに割り当てることができます。 申し訳ありませんが、具体的なコードがなくてもデータベース/ Webサービスがどのように見えるのかはわかりません。 – nicost

答えて

2

ドロップダウンで選択したカテゴリを表示しないようにするには、その中の値をフィルタリングする必要があります。あなたは、カスタムフィルタでこれを行うことができます。

<ui-select-choices repeat="category in categories | filter: $select.search |filter:customFilter track by category.Id"> 

私はあなたのためのplunkerを作成しました。 私はこれが役立つことを願っています。

+0

私が正確に探していたものをたくさんありがとう。 – sqlcte

+0

うれしい私はあなたを助けることができました! ;) – nicost