2017-08-07 6 views
-1

私はこの特定の問題について私の頭を打ち砕いており、私はその解決策を見つけることができないようです。選択時にフィルタリングするときにモデルをそのまま保持する

基本的に、私が達成しようとしているのは、選択リスト([複数]を選択)を持ち、配列に値をバインドすることです。しかし、リストが大きくなるにつれて、フィルタを追加するので、個別にスクロールして検索する必要はありません。

しかし、そうすることで、私のモデル(配列)がクリアされている可能性が高くなります。フィルタリングの結果であるものを除いて、そこに格納されている値はすべて破棄されます。

誰もがこの特定の問題に取り組む方法を知っていますか?

問題をシミュレートするには、複数の項目を選択し、特に1つの項目をフィルタリングします。フィルターをクリアすると、モデルはクリアされます。

指令コード

angular 
.module("multiselect", []) 
.directive("multiselect", [function() { 
    return { 
    template: '<div>' + 
       '  <input type="text" data-ng-model="filter" placeholder="filter"/>' + 
       '  <select multiple="multiple" data-ng-model="selection" data-ng-options="item.value as item.label for item in items | filter: filter"/>' + 
       '</div>', 
    link: function(scope, elem, attr) { 
     scope.selection = []; 
     scope.items = [ 
     { label: 'Item 1', value: 1 }, 
     { label: 'Item 2', value: 2 }, 
     { label: 'Item 3', value: 3 }, 
     { label: 'Item 4', value: 4 }, 
     { label: 'Item 5', value: 5 }, 
     ]; 
    } 
    } 
}]); 

HTML

<div ng-app="multiselect"> 
    <multiselect></multiselect> 
</div> 

例>fiddle

答えて

0

は角jsのためui-selectを見てみましょう。複数の選択に設定することができ、this postのようなカスタムフィルタリングを受け入れます。お役に立てれば。幸運

+0

確かに有望ですが、私は自分の問題を解決するために自分の指示を書いた。このような状況で最も有望なことを示すので、私はあなたの答えを正しいものとしてマークします。私が探していたものに最も近いものです! – Jorrex

関連する問題