2013-10-02 10 views
12

Szukałem już od kilku godzin i nie mogę znaleźć odpowiedzi na mój problem w dowolnym miejscu. Pamiętam, że byłem w stanie go wcześniej wdrożyć, ale z jakiegoś powodu zgubiłem kod i nie mogę sobie przypomnieć, co zrobiłem, aby działało.Wyświetlanie warunkowe AngularJs dla opcji ng

Próbuję wyświetlać dane z tablicy w polu wyboru przy użyciu opcji ng. Tego nie mam żadnych problemów. Potrzebne do wdrożenia jest to, że tylko niektóre wartości tablicy będą wyświetlane/dołączane w polu wyboru.

Moje dane przedstawiają się następująco:

$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 } ]; 

A mój HTML wygląda następująco:

<select ng-model="toAddChart" ng-options="chart.id as chart.name for chart in chartList | filter:chart.active=='false'"> 
    <option value=""></option> 
</select> 

Więc co chcę się zdarzyć, że jeżeli wartość atrybutu „aktywny” jest fałszywa wtedy jest to jedyny czas, gdy element tablicy zostanie wyświetlony/włączony na liście wyboru. Próbowałem różnych permutacji atrybutu filtru, ale żaden nie działa.

Wiem, że mogę łatwo użyć ng-repeat w tagu i użyć ng-show, ale pamiętam, że gdzieś czytałem (znowu, nie mogę znaleźć), że nie jest to właściwy sposób na jego implementację i że używanie ng- opcje są poprawne.

Naprawdę jestem pewien, że udało mi się to zrobić wcześniej bez tworzenia niestandardowego filtra javascript, ale w moim życiu nie pamiętam, jak to zrobiłem. Mam nadzieję, że ktoś może

ma nadzieję, że ktoś może mi pomóc w tym, ponieważ jestem bez pomysłów.

Aktualizacja:

Wielki Scott, myślę, że mam go.

Zamiast:

filter:chart.active=='false' 

Powinno być:

filter:chart.active='false' 

To tylko liczba jednakowych oznaczeń używanych. facepalm

Dzięki za odpowiedzi, wszyscy.

+0

Twój Składnia wydaje mi się doskonale działać? –

+2

Twój kod wydaje się działać tylko zobacz tutaj http://jsfiddle.net/vinodlouis/H6AZ2/1 –

+0

@VinodLouis - Och, kochanie, działa na jsfiddle. Teraz jestem jeszcze bardziej zdezorientowany, ponieważ nie działa on w moim środowisku programisty. Dzięki! Przyjrzę się więc innym czynnikom. – Stellaire

Odpowiedz

17

Wielki szkocki, myślę, że go mam.

Zamiast:

filter:chart.active=='false' 

Powinno być:

filter:chart.active='false' 

To tylko liczba jednakowych oznaczeń używanych. facepalm

Dzięki za odpowiedzi, wszyscy.

+27

who's * scott *? –

+0

Może wysłano link do bossa ... –

1

Hej Zamiast jej lepsze wykorzystanie

NG-options = "chart.id jak chart.name na wykresie w chartList | filtr: {aktywny: true}"

Powiązane problemy