Показать несколько значений, выбранных из выпадающего списка - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть функция angularjs, которая содержит массив значений следующим образом

$scope.arrayVal = function()
{
var array = [{id:1,name:"one"},{id:2,name:"two"}];
}

Я передаю этот массив моему раскрывающемуся списку, который находится на странице html, и отображаю значения в раскрывающемся списке следующим образом

<html>

<select ng-model="data.selected">
<option value="item.id,item.name" ng-repeat="item in array">{{item.id}} {{item.name}}</option>
</html>

Чего я хочу добиться - я хочу, чтобы пользователь выбрал несколько значений из раскрывающегося списка, и эти выбранные значения должны отображаться в соответствии с выбранным порядком под раскрывающимся списком.Как я могу добиться этого с Angularjs и HTML только.(Я не использую никаких библиотек, кроме angularjs)

1 Ответ

0 голосов
/ 17 апреля 2019

Попробуйте этот плункер https://next.plnkr.co/edit/6Nxaxz9hGNXospyT. Возможно, вам придется повозиться с ним, чтобы получить желаемый результат

<div ng-controller="ctrl">
    <select ng-model="selectedItem" ng-options="item.name for item in items" ng-change="selectItem()">
    </select>
    <p ng-repeat="item in selectedItems">{{item.id}} - {{item.name}}</p>
</div>
angular.module('app', [])

.controller('ctrl', function($scope) {
  $scope.items = [{id:1,name:"one"},{id:2,name:"two"}];
  $scope.selectedItems = [];
  $scope.selectedItem;

  $scope.selectItem = function () {
    var index = $scope.selectedItems.findIndex(function (fItem) { return $scope.selectedItem.id === fItem.id; });
    console.log(index)
    if (index > -1) $scope.selectedItems.splice(index, 1);
    else $scope.selectedItems.push($scope.selectedItem);
  };
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...