2014-09-08 9 views
6

Używam Ionic Framework.
Chciałbym wprowadzić pierwszą opcję jako domyślną, ale robienie tego w ten sposób nie działa.
Co mogę zrobić?Wybierz domyślną opcję nie działa z Ionic Framework

<select ng-model="newSpesaAereo.valuta"> 
    <option ng-selected="selected">Euro</option> 
    <option>Dollaro</option> 
    <option>Dollaro canadese</option> 
    <option>Sterlina</option> 
</select> 

enter image description here

Gdybym analizować stronę z Google Chrome Developer Utility I to patrzeć.

enter image description here

Gdybym edytować kod HTML i usunąć wybrany wiersz, a następnie Euro jest widoczny.

Dlaczego tak się dzieje?

Odpowiedz

2

Musisz użyć ng-selected zamiast tylko wybranego.

https://docs.angularjs.org/api/ng/directive/ngSelected

<select ng-model="newSpesaAereo.metodoPagamento"> 
    <option ng-selected="selected">Carta di credito</option> 
    <option>Bancomat</option> 
    <option>Contanti</option> 
    <option>Altro</option> 
</select> 
+1

Nadal nie działa ... – Marco

+0

dodałem więcej szczegółów do mojego problemu. – Marco

+0

Czy możesz spróbować utworzyć codepen lub coś, w czym możemy zobaczyć problem? –

10

Powodem domyślna opcja nie działa to dlatego, że w kontrolerze, masz prawdopodobnie zainicjowany model formularz tak:

$scope.newSpesaAereo = {} 

Jeśli chcesz ustaw domyślne opcje formularzy, należy je również ustawić w modelu formularza. Na przykład ustaw "valuta" na "Euro", tak jak:

$scope.newSpesaAereo = { valuta: "Euro" } 

Mam nadzieję, że to pomoże!

P. Podczas publikowania takich problemów należy również podać kod kontrolera, do którego widok jest powiązany.

+0

+1 Wyświetlam inne elementy formularza na podstawie wybranej wartości. Dlatego ustawienie domyślne w obiekcie, jak pokazano w tym rozwiązaniu, działa idealnie dla mnie. – Devner

+0

Miałeś rację, zainicjowałem pusty obiekt! Zmieniono to i zadziałało, dziękuję :) –

13

Zestaw ng-selected="true".

Przykład:

<option ng-selected="true">Carta di credito</option> 
+0

Chociaż to rozwiązanie działa w tym przypadku, w innym przypadku nie powiedzie się. Domyślnie pokazuję (i ukrywam) inne elementy formularza na podstawie wybranej wartości. Chociaż ng-selected = "true" pokazuje domyślnie wybraną wartość, nie pokazuje innych elementów formularza związanych z tą wybraną opcją. Więc jeśli szukasz podobnej funkcjonalności jak moja, sugeruję wypróbować rozwiązanie dostarczone przez @ lisimba.gilkes, ponieważ działa idealnie dobrze. – Devner