2014-09-08 17 views
6

Sto usando Ionic Framework.
Vorrei inserire la prima opzione come predefinita, ma farlo in questo modo non funziona.
Cosa posso fare?Selezionare l'opzione di default che non funziona con 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

Se analizzo la pagina con Google Chrome Developer Utility guardo questo.

enter image description here

Se modifico questo HTML e cancello la riga selezionata, quindi Euro è visibile.

Perché sta succedendo?

risposta

2

È necessario utilizzare ng-selected anziché solo selezionato.

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

Ancora non funziona ... – Marco

+0

Ho aggiunto ulteriori dettagli al mio problema. – Marco

+0

Puoi provare a creare una codepen o qualcosa in cui possiamo vedere il problema? –

10

Il motivo l'opzione predefinita non funziona è perché, nel controller, probabilmente hai inizializzato il vostro modello di forma in questo modo:

$scope.newSpesaAereo = {} 

Se si desidera imposta le opzioni di modulo predefinite, dovresti anche impostarle nel modello di modulo. Ad esempio, imposta "in" su "Euro" in questo modo:

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

Spero che questo aiuti!

P.S quando si pubblicano problemi come questo, è necessario includere anche il codice per il controllore a cui è vincolata la vista.

+0

+1 I mostra altri elementi del modulo in base al valore selezionato. Quindi impostare l'impostazione predefinita nell'oggetto come mostrato in questa soluzione ha funzionato perfettamente per me. – Devner

+0

Avevi ragione, avevo un oggetto vuoto inizializzato! Modificato e funzionante, grazie :) –

13

Set ng-selected="true".

Esempio:

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

Anche se questa soluzione funziona in questo caso, in altri casi non funziona. Io mostro (e nascondo) altri elementi del modulo in base al valore selezionato per impostazione predefinita. Anche se ng-selected = "true" mostra il valore selezionato per impostazione predefinita, non riesce a mostrare gli altri elementi del modulo che sono connessi con questa opzione selezionata. Quindi, se stai cercando una funzionalità simile alla mia, ti suggerisco di provare la soluzione fornita da @ lisimba.gilkes perché funziona perfettamente. – Devner