Por alguna razón que es demasiado larga para explicar, estoy tratando de modificar el comportamiento de una selección múltiple, lo que quiero lograr es permitir que el usuario seleccione múltiples elementos sin la necesidad de mantener presionada la tecla ctrl/cmd. este es el html:
<select multiple="multiple" class="form-control"> <option ng-repeat="option in options" ng-click="selectItem(option)" ng-selected="option.selected" value="{{option.id}}">{{option.name}}</option> </select>y esta es mi función selectItem:
$scope.selectItem = (option) => { let index = $scope.selectedElements.indexOf(option.id); (index === -1) ? $scope.selectedElements.push(option.id) : $scope.selectedElements.splice(index, 1); $scope.options.forEach((element, index) => { element.selected = $scope.selectedElements.indexOf(element.id) !== -1 ? true : false; }); }esto funciona parcialmente: la matriz $scope.selectedElements se actualiza y también $scope.options tiene la propiedad seleccionada establecida correctamente en verdadero o falso. Sin embargo, la selección solo muestra como resaltado el último elemento en el que hice clic.
¿Me estoy perdiendo de algo?