Sto provando a ottenere select-box per iniziare con un'opzione pre-riempita usando ng-repeat con AngularJS 1.1.5. Invece la selezione inizia sempre con nulla selezionato. Ha anche un'opzione vuota, che non voglio. Penso che ci sia un effetto collaterale sul fatto che nulla venga selezionato.Inizializzazione selezionare con AngularJS e ng-repeat
Posso farlo funzionare usando ng-options invece di ng-repeat, ma voglio usare ng-repeat per questo caso. Anche se il mio esempio ristretto non lo mostra, voglio anche impostare l'attributo title di ogni opzione, e non c'è modo di farlo usando ng-options, per quanto ne so.
Non penso che questo sia correlato al problema dell'ambito di applicazione/prototypical ereditarietà di AngularJs. Almeno non vedo nulla di ovvio quando ispeziono in Batarang. Inoltre, quando si seleziona un'opzione nella selezione con l'interfaccia utente, il modello viene aggiornato correttamente.
Ecco il codice HTML:
<body ng-app ng-controller="AppCtrl">
<div>
Operator is: {{filterCondition.operator}}
</div>
<select ng-model="filterCondition.operator">
<option
ng-repeat="operator in operators"
value="{{operator.value}}"
>
{{operator.displayName}}
</option>
</select>
</body>
E il JavaScript:
function AppCtrl($scope) {
$scope.filterCondition={
operator: 'eq'
}
$scope.operators = [
{value: 'eq', displayName: 'equals'},
{value: 'neq', displayName: 'not equal'}
]
}
JS Fiddle per questo: http://jsfiddle.net/coverbeck/FxM3B/2/
ngOption è stato creato perché non c'era modo pulito di fare questo con ngRepeat. ngRepeat si srotola dopo che l'opzione è stata selezionata. Hai provato a impostare ngSelect sulle opzioni – TheSharpieOne
Sì! Il ngSelected ha funzionato! Pubblicherò un JsFiddle funzionante aggiornato. –
Va notato che in AngualrJS 1.2 questo codice funziona in modo diverso - Non crea un nuovo elemento vuoto