Tengo problemas para configurar el valor predeterminado de un cuadro de selección en HTML con AngularJS.

Aquí está mi variable de alcance en el controlador:

$scope.sensorReadingsPerPage = 30;

Y aquí está el cuadro de selección en la vista que está usando el controlador:

<select id="itemsPerPage" name="itemsPerPage" class="panel panel-default" ng-model="sensorReadingsPerPage" ng-change="changeItemsPerPage()">
  <option value="10">10</option>
  <option value="20">20</option>
  <option value="30">30</option>
  <option value="40">40</option>
  <option value="50">50</option>
  <option value="100">100</option>
</select>

Quiero que la opción con el valor '30' sea preseleccionada.

He intentado usar esto responder y este, ambos de ellos haciendo referencia a documentación de AngularJS en la directiva select, pero en estos casos las opciones son siendo generado dinámicamente Y el alcance consiste en un objeto con varios valores en él. En mi caso, las opciones son estáticas y solo hay una variable en el alcance.

¿Cómo puedo evitar esto? ¿Hay alguna manera de cambiar el ng-init y ng-options para que se adapte a mi caso?

0
Ernani 24 mar. 2017 a las 00:34

2 respuestas

La mejor respuesta

Intente configurar $scope.sensorReadingsPerPage = "30" en su controlador.

Nota: debe ser una cadena.

1
Nikhil Bhandari 23 mar. 2017 a las 21:39

¿Has intentado usar ng-options en lugar de crear elementos de opción separados?

<select id="itemsPerPage" name="itemsPerPage" class="panel panel-default" ng-options="item in items track by $index" ng-model="sensorReadingsPerPage" ng-change="changeItemsPerPage()">

Y en tu controlador

$scope.items = [10, 20, 30, 40, 50, 100];
$scope.sensorReadingsPerPage = $scope.items[2];
1
AJ Funk 23 mar. 2017 a las 21:41