2013-10-02 13 views
12

私は数時間前から検索していましたが、どこにいても問題の答えが見つからないようです。私は前にそれを実装することができたことを覚えていますが、何らかの理由でコードを失いました。私はそれを動作させるために何をしたのか覚えていないようです。ng-optionsのAngularJs条件付き表示

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> 

それでは、私は起こるしたいことは、属性の値が「アクティブ」場合はその後、偽であるということです配列項目が選択リストに表示/含まれるのは唯一の時間です。私はフィルタ属性の異なる順列を試みたが、どれもうまくいかないようだ。

タグでng-repeatを簡単に使用でき、ng-showを使用することができますが、実装する適切な方法ではないことと、ng-オプションが正しい方法です。

カスタムJavaScriptフィルタを作成せずに前にそれを行うことができたと本当に確信していますが、私の人生では私がどのようにしたのか覚えていません。私は誰かができることを願っています

私はアイデアがないので、誰かが私を助けることができます。

更新:

グレート・スコット、私はそれを持っていると思います。

の代わりに:

filter:chart.active=='false' 

それは次のようになります。

filter:chart.active='false' 

それは使用等号の数だけです。 facepalm

返信いただきありがとうございます。

+0

あなた構文は私にとって完璧に機能するようですか? –

+2

あなたのコードはここしか見ることができないようですhttp://jsfiddle.net/vinodlouis/H6AZ2/1 –

+0

@VinodLouis - ああ、こんにちは、それはjsfiddleで動作します。今私は、私の開発環境では動作しないので、さらに混乱しています。ありがとう!私は他の要因を検討します。 – Stellaire

答えて

17

偉大なスコット、私はそれを持っていると思う。

の代わりに:

filter:chart.active=='false' 

それは次のようになります。

filter:chart.active='false' 

それは使用等号の数だけです。 facepalm

返信いただきありがとうございます。

+27

who's * scott *? –

+0

おそらくボスにリンクを送った... –

0

これは機能します。http://jsfiddle.net/H6AZ2/116/

+1

フィルタを試してください:chart.active == trueそれは動作しません –

1

filter:chart.active==false 

ねえ代わりにその活用

NG-オプション= "chart.id chartListのチャートのためのchart.nameとして|フィルター:{アクティブ:真}"

関連する問題