Angularjs不会选择第一个元素

时间:2017-12-21 22:23:17

标签: angularjs

我想设置第一个选中的元素。我使用ng-init但不起作用。我怎么解决?

HTML

  <select id="room" name="room" ng-init="rooms.id=1" ng-model="searchRoom" class="custom-select">
     <option value="{{rooms.id}}" ng-repeat="rooms in searchRoomValues track by $index">{{rooms.value}}</option> 
  </select> 

的js

$scope.searchRoomValues=[{value: 'Not', id:1},{value: '1+0', id:1648}, {value: '1+1', id:1649}, {value: '2+1', id:1650}, {value: '3+1', id:1651}, {value: '4+1', id:1652}, {value: '5+1', id:1653}];        

2 个答案:

答案 0 :(得分:4)

使用ng-options

&#13;
&#13;
var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.searchRoomValues = [{
    value: 'Not',
    id: 1
  }, {
    value: '1+0',
    id: 1648
  }, {
    value: '1+1',
    id: 1649
  }, {
    value: '2+1',
    id: 1650
  }, {
    value: '3+1',
    id: 1651
  }, {
    value: '4+1',
    id: 1652
  }, {
    value: '5+1',
    id: 1653
  }];
  $scope.selected = $scope.searchRoomValues[0];
});
&#13;
<body ng-controller="MainCtrl">
  <select ng-model="selected" ng-options="item as item.value for item in searchRoomValues"></select>
</body>
&#13;
&#13;
&#13;

Plnkr

答案 1 :(得分:2)

您必须在控制器中初始$scope.searchRoom

$scope.searchRoom=1

或在ng-init中:

  <select id="room" name="room" ng-init="searchRoom=1" ng-model="searchRoom" class="custom-select">
     <option ng-value="{{rooms.id}}" ng-repeat="rooms in searchRoomValues track by $index">{{rooms.value}}</option> 
  </select>