slopdel - select multiple
http://angularjs.org/
HTML
<script src="https://code.angularjs.org/1.6.6/angular.min.js"></script>
<div ng-controller="MyCtrl">
<div class="row-sort" ng-repeat="(key1, value1) in selectList | orderBy : 'selected'">
<select class="row-select" ng-model="value1.selected">
<option ng-repeat="(key2, value2) in selectList"
value={{key2}}
>{{key2}}</option>
</select>
<span class="row-label">{{value1.name}}</span>
</div>
<pre>{{selectList|json}}</pre>
</div>
JavaScript
var app = angular.module('myApp', []);
app.controller('MyCtrl',MyCtrl);
function MyCtrl($scope) {
$scope.selectList = [{
idx: 0,
selected: '0',
name: 'Value1'
}, {
idx: 1,
selected: '1',
name: 'Value2'
}, {
idx: 2,
selected: '2',
name: 'Value3'
}, {
idx: 3,
selected: '3',
name: 'Value4'
}];
$scope.$watch(function () {
return $scope.selectList;
},
function (newVal, oldVal) {
var selectedItemId;
var selected;
angular.forEach($scope.selectList, function(item){
if(item.idx !== parseInt(item.selected)){
selectedItemId = item.idx;
selected = item.selected
//
}
});
angular.forEach($scope.selectList, function(item){
if(item.selected === selected){
item.selected = ''+selectedItemId;
item.idx = selectedItemId;
selectedItemId = undefined;
selected = undefined;
}
if(item.idx !== parseInt(item.selected)){
item.idx = parseInt(item.selected);
}
});
//item.idx = parseInt(selectedItem.selected);
console.log(newVal);
console.log(selectedItemId, selected);
},true);
}