Sto usando angular-ui's select2 per un menu a discesa abbastanza semplice. È supportato da una matrice statica di dati che si trova sull'ambito del mio controller. Nel mio controller ho una funzione che viene chiamata su ng-change del menu a discesa in modo da poter eseguire alcune azioni quando il valore cambia.UI angolare Select2, perché il modello ng viene impostato come stringa JSON?
Tuttavia, quello che sto scoprendo è che la proprietà del modello ng viene impostata come una stringa JSON piuttosto che un oggetto javascript effettivo, il che rende impossibile l'uso della notazione a punti per estrapolare le proprietà da quel modello.
Ecco la funzione che gestisce il valore della discesa cambiarsi:
$scope.roleTypeChanged = function() {
//fine:
console.log('selectedType is: ', $scope.adminModel.selectedType);
// this ends up being undefined because $scope.adminModel.selectedType is a
// JSON string, rather than a js object:
console.log('selectedType.typeCode is: ', $scope.adminModel.selectedType.typeCode);
}
Ecco un plunker della mia piena esempio: http://plnkr.co/edit/G39iZC4f7QH05VctY8zG
Non ho mai visto una proprietà che è destinato a ng-model fallo prima, tuttavia sono anche abbastanza nuovo per Angular, quindi è probabile che stia facendo qualcosa di sbagliato qui. Posso certamente fare qualcosa come $ .parseJSON() per convertire la stringa JSON in un oggetto, ma preferirei non farlo a meno che non sia necessario. Grazie per l'aiuto!
interessante, che abbia un senso, ma io didn' t provare a farlo perché, secondo la documentazione, le opzioni ng non sono supportate: https://github.com/angular-ui/ui-select2 –
Non ho lavorato con ui-select2, quindi forse ci sono effetti collaterali indesiderati a questa soluzione. In ogni caso, se hai intenzione di usare una ng-repeat su opzioni, dovrai occuparti di semplici stringhe invece di oggetti pieni. –
Grazie per l'aiuto. Potrei fare questa stessa domanda sulla pagina github per ui-select2 solo per vedere se il supporto di ng-options è sulla roadmap o se ci sono ragioni per non supportarlo. Posso probabilmente fare qualche ritocco per far funzionare il mio caso d'uso con le stringhe piuttosto che con un oggetto completo. –