Как отфильтровать элементы из одной области $ AngularJs, которые были добавлены в другую область $

0

Я использую 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>
Теги:
angularjs-ng-repeat

2 ответа

0

В качестве опции см. Это

$scope.items = [{name:"name1", selected: false},{name:"name2", selected: false},{name:"name3", selected: false}];
    $scope.addItem = function(item){
        item.selected = true;
    }

Он использует одну и ту же коллекцию в обоих элементах управления (select и ng-repeat).

Во всяком случае, для этого есть много разных решений, и лучший из них зависит от контекста.

0

Просто соедините их с массивом.

$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
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню