Clicky

Skocz do zawartości


Zdjęcie
- - - - -

[AngularJS] problem z select przy ładowaniu danych

2 odpowiedzi w tym temacie
AngularJS

  • Zaloguj się, aby dodać odpowiedź

#1 Aver

Aver

    Początkujący

  • Użytkownik
  • Pip
  • 20 postów
  • Skąd:Łódź

Napisano 08 lipiec 2014 - 10:36

Witam,

 

mam problem z ładowaniem wartości do selecta przy ładowaniu danych. Otóż mam taka tablice do dyrektywy ng-options w select:

       $scope.wheelchairs = [
            {name: 'Brak informacji', value: '0'},
            {name: 'Tak', value: '1'},
            {name: 'Nie', value: '2'},
         
        ]
        
        $scope.wheelchair = $scope.wheelchairs[0].value;

dalej mam w widoku selecta:

<select ng-model="wheelchair" ng-options="wheel.value as wheel.name for wheel in wheelchairs"></select>

i tu pojawia się problem ponieważ kiedy łąduje dane z serwera i przypisuje odpowiednią wartość (0,1,2) to w selecie nie zostaje zaznaczona odpowiednia opcja. Dane otrzymane z serwera są poprawne i kiedy do $scope.wheelchair przypisuje '1' to spodziewałbym się że w selecie zostanie zaznoczona opcja 'Tak'. Ktoś wie jak to rozwiązać?



#2 dczepierga

dczepierga

    Początkujący

  • Użytkownik
  • Pip
  • 27 postów
  • Skąd:Katowice

Napisano 08 lipiec 2014 - 16:28

Cześć,

Rozumiem że twój przypadek ci działa?

Wziąłem wrzuciłem to dla pewności na JSFiddle:

http://jsfiddle.net/...pierga/cp2R9/1/

 

Może natknąłeś się na jeden z podstawowych problemów AngularJS z ng-options:

- sprawdź czy w danych wejściowych `value` jest string-iem czy int-em (zaraz po poprawnym requeście)

- następnie w wartości którą sam ustawiasz sprawdź tak samo czy masz string-a czy int-a

- żeby pole się zaznaczyło obydwa typy muszą być niestety zgodne

 

Niestety jest z tym bardzo często problem i wówczas zazwyczaj opcja nie jest zaznaczana w ogóle lub poprawnie tak jak piszesz :)

 

To przynajmniej pierwsza myśl która przychodzi mi do głowy, najwyżej pisz to będziemy szukać dalej powodu ;)



#3 Aver

Aver

    Początkujący

  • Użytkownik
  • Pip
  • 20 postów
  • Skąd:Łódź

Napisano 09 lipiec 2014 - 11:10

Faktycznie, przeoczyłem to. Dopiero teraz popatrzyłem w API RESTa a tam okazuje się, że typ zwracany tej wartości to int32. Dzieki za pomoc







Również z jednym lub większą ilością słów kluczowych: AngularJS

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych