2017-12-21 1 views
2

最初に選択した要素を設定します。私はng-initを使用しましたが、動作しませんでした。どうすれば解決できますか?Angularjsは最初の要素を選択しません

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}];   

答えて

4

使用ng-options:この場合

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]; 
 
});
<body ng-controller="MainCtrl"> 
 
    <select ng-model="selected" ng-options="item as item.value for item in searchRoomValues"></select> 
 
</body>

Plnkr

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> 
+1

は、最初のオプションは正しい_most_、およびベストプラクティスです。 'ng-init'は非常に控えめに使用されるので、2番目のオプションはお勧めしません。 – rmlan

+0

私は試しましたが、仕事がありませんでした – Hermes

+0

@Hermesはあなたにエラーを投稿してください –

関連する問題