Angularjs a discesa Opzioni per mostrare elemento selezionato

Cosa volete realizzare qui è quando l’utente entra in applicazione il selectedLocal è già impostato ID 184 e il Nome di Un Nome invece che con il nome predefinito.

Ogni aiuto è apprezzato.

Ho il seguente script:

 function MyCtrl($scope) {
        $scope.User = [{
            ID: 109,
            Name: 'A Name'
        }, {
            ID: 161,
            Name: 'B Name'
        }, {
            ID: 184,
            Name: 'C Name'
        }];

        $scope.selectedLocal = [{ID: 184,Name: 'A Name'}]

    }

e il seguente codice html:

<div ng-app ng-controller="MyCtrl">
    <div>{{selectedLocal}}</div>
    <select ng-model="selectedLocal" ng-options="item.Name for item in User" ng-change="localSelectChange()">
        <option value="">Default</option>
    </select>
</div>

qui è il js violino LINK

grazie

 

One Reply
  1. 3

    Dovete capire che ng-options confronta i valori di opzione con il ng-model valore con riferimento. Il che significa che a un certo punto c’è un
    loop che confronta $scope.User[i] === $scope.selectedLocal dove i è un valore tra 0 e $scope.User.length.

    Quindi è necessario inizializzare $scope.selectedLocal con un riferimento da $scope.User.
    Nel tuo caso, che sarebbe $scope.selectedLocal = $scope.User[2];.

    Oppure si potrebbe fare questo:

    ng-options="item.ID as item.Name for item in User"

    e

    $scope.selectedLocal = 184;

    A seconda del contesto, una soluzione potrebbe essere preferito rispetto ad un altro.

    • Grazie per la spiegazione, io sono nuovo di angularjs ma che bella libreria. Ho usato knowckoutjs prima e io sono piacimento meglio 🙂 di accettare la risposta.

Lascia un commento