javascript angularjs

javascript - AngularJS: ng-selected no muestra el valor seleccionado



(2)

Esta pregunta ya tiene una respuesta aquí:

Como en el título, mi selección no parece capaz de mostrar el valor seleccionado, es decir, correctamente seleccionado ...

<md-input-container flex> <label>Anno selezione</label> <md-select name="annoSelect" ng-model="vm.anno_attuale" ng-value="vm.progetto.pprs[$index].anno" ng-selected="item.selected" > <md-option ng-repeat="item in vm.progetto.pprs" > {{vm.progetto.pprs[$index].anno}} </md-option> </md-select> </md-input-container>

Probé con algunas soluciones encontradas en la pila, como esa: Angular: ng-select no muestra el valor seleccionado de ng

pero ninguno de ellos solucionó el problema ... ¿Alguna idea?


De los docs:

Nota: ngSelected no interactúa con las directivas select y ngModel , solo establece el atributo selected en el elemento. Si está usando ngModel en la selección, no debe usar ngSelected en las opciones, ya que ngModel establecerá el valor de selección y las opciones seleccionadas.

- Referencia de la API de la directiva AngularJS ng-selected

La directiva ng-value está en el lugar equivocado:

<md-input-container flex> <label>Anno selezione</label> <md-select name="annoSelect" ng-model="vm.anno_attuale" ̶n̶g̶-̶v̶a̶l̶u̶e̶=̶"̶v̶m̶.̶p̶r̶o̶g̶e̶t̶t̶o̶.̶p̶p̶r̶s̶[̶$̶i̶n̶d̶e̶x̶]̶.̶a̶n̶n̶o̶"̶ ̶n̶g̶-̶s̶e̶l̶e̶c̶t̶e̶d̶=̶"̶i̶t̶e̶m̶.̶s̶e̶l̶e̶c̶t̶e̶d̶"̶ ̶ > <md-option ng-repeat="item in vm.progetto.pprs" ng-value="item.anno"> ̶{̶{̶v̶m̶.̶p̶r̶o̶g̶e̶t̶t̶o̶.̶p̶p̶r̶s̶[̶$̶i̶n̶d̶e̶x̶]̶.̶a̶n̶n̶o̶}̶}̶ {{item.anno}} </md-option> </md-select> </md-input-container>

Para obtener más información, consulte Uso de ngValue para enlazar el modelo a una matriz de objetos.


Debe mover The ng-selected desde el elemento <select> elemento <option>

La directiva ng-selected establece el atributo seleccionado de un elemento <option> en una lista <select> .

ng-selected - AngularJS Doc

En su caso particular, parece que tiene más de un problema en su código. ng-value directivas ng-value y ng-selected pertenecen al elemento <md-options> . También debe elegir una estrategia, si usa ng-model y ng-value entonces no debería usar ng-selected .

Su código debe verse algo como esto:

<md-input-container flex> <label>Anno selezione</label> <md-select name="annoSelect" ng-model="vm.anno_attuale"> <md-option ng-repeat="item in vm.progetto.pprs" ng-value="vm.progetto.pprs[$index].anno">{{vm.progetto.pprs[$index].anno}}</md-option> </md-select> </md-input-container>

También me gustaría revisar su ng-model ng-value para asegurarme de que está obteniendo los valores que cree que es. Eche un vistazo aquí al material oficial de AngularJS mdSelect Docs . Hay un ejemplo muy similar al tuyo. ¡Debería ayudarte a ponerte en camino!