私は今数時間探していましたが、どこにも問題の答えが見つからないようです。以前は実装できたのを覚えていますが、何らかの理由でコードを失い、それを機能させるために何をしたのか思い出せないようです。
Ng-optionsを使用して、選択ボックス内の配列からデータを表示しようとしています。あれは問題ありません。実装する必要があるのは、特定の配列値のみが選択ボックスに表示/含まれることです。
私のデータは次のとおりです:
$scope.chartList = [ { "id" : 1, "name" : "chart 1", "order" : 1, "active" : false },
{ "id" : 2, "name" : "chart 2", "order" : 2, "active" : true },
{ "id" : 3, "name" : "chart 3", "order" : 3, "active" : true },
{ "id" : 4, "name" : "chart 4", "order" : 4, "active" : true },
{ "id" : 5, "name" : "chart 5", "order" : 5, "active" : true } ];
そして私のHTMLは次のようになります:
<select ng-model="toAddChart" ng-options="chart.id as chart.name for chart in chartList | filter:chart.active=='false'">
<option value=""></option>
</select>
したがって、私が起こしたいのは、 "active"属性の値がfalseの場合、配列項目が選択リストに表示/含まれるのはこのときだけです。フィルター属性のさまざまな順列を試してみましたが、何も機能しないようです。
タグでng-repeatを簡単に使用してng-showを使用できることはわかっていますが、どこかで読んだことを覚えています(ここでも、どこにあるのかわかりません)。それを実装する適切な方法ではなく、ng-optionsの使用が正しいことを覚えています。仕方。
カスタムJavaScriptフィルターを作成せずにそれを以前に実行できたことは本当に確かですが、私の人生では、それをどのようにしたのか思い出せません。誰かができることを願っています
私はアイデアがなくなったので、誰かがこれを手伝ってくれるといいのですが。
更新:
素晴らしいスコット、私はそれを持っていると思います。
の代わりに:
filter:chart.active=='false'
そのはず:
filter:chart.active='false'
使用される等号の数です。 facepalm
皆さん、回答ありがとうございます。
素晴らしいスコット、私はそれを持っていると思います。
の代わりに:
filter:chart.active=='false'
そのはず:
filter:chart.active='false'
使用される等号の数です。 Facepalm
皆さん、回答ありがとうございます。
ちょっと代わりにそのより良い使用
ng-options = "chart.id as chart.name as chartList in chartList | filter:{active:true}"