Nell'app AngularJS 1.3 ho un modulo su cui ottengo il modello ei possibili valori per i controlli selezionati in modo asincrono dal back-end. Quando ottengo il valore del modello prima dei valori utilizzati in ng-options
, nessuna opzione viene selezionata nel controllo di selezione. Sono riuscito a riprodurre questo comportamento:Valore iniziale della selezione non impostato in AngularJS
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, $timeout) {
$scope.model = { value: 101 };
$timeout(function() {
$scope.model.values = [100, 101, 102, 103];
}, 1000);
});
vista:
Options: <select ng-model="model.value"
ng-options="v for v in model.values">
<option value="">Select some...</option>
</select>
Dopo timeout modello ha il suo antico valore di 101, ma nessuna opzione è selezionata. Attualmente trovo una soluzione alternativa utilizzando ng-if="model.values"
su select, ma ritengo che ci dovrebbe essere un modo migliore per farlo.
Qualcuno potrebbe spiegare perché l'opzione non è selezionata?
Plunkr: http://plnkr.co/edit/4opZRJzdDfJhSNJx8RMF
EDIT: ho aperto Plunkr in Firefox e ho iniziato a lavorare, poi ho di nuovo a Chrome e non ha funzionato assomiglia problema crossbrowser ...
Questo sembra essere specifico per angolare 1.3; Il codice funziona correttamente in angular 1.2 e nell'attuale versione 1.4.6 – Claies
non sono sicuro, ma sospetto che questo debba essere chiuso come non riproducibile poiché il problema dimostrato riguarda solo versioni specifiche del framework e non è presente nell'attuale versione stabile. – Claies