Я использую select для добавления элементов в ng-repeat
но я бы хотел, чтобы добавленный элемент был удален из select после его добавления в область ng-repeat
$scope
. То есть. отфильтруйте игроков из выпадающего списка, которые были выбраны.
Как я могу это достичь?
<li ng-repeat="player in nextfixtureplayers">
{{ player.name }}
</li>
<select id="players" ng-model="selectedPlayer" ng-change="addGamePlayer(selectedPlayer);"
ng-options="player.name for player in players | filter:{live:'true'} track by player.$id">
<option value="">Select player</option>
</select>
В качестве опции см. Это
$scope.items = [{name:"name1", selected: false},{name:"name2", selected: false},{name:"name3", selected: false}];
$scope.addItem = function(item){
item.selected = true;
}
Он использует одну и ту же коллекцию в обоих элементах управления (select и ng-repeat).
Во всяком случае, для этого есть много разных решений, и лучший из них зависит от контекста.
Просто соедините их с массивом.
$scope.addGamePlayer = function(player) {
//add to ng-repeat list
$scope.nextfixtureplayers.push(player);
//first, find the index of the player
var i = $scope.players.indexOf(player);
$scope.players.splice(i, 1); //then remove from array
}