如何过滤掉一个已添加到另一个$ scope的AngularJs $范围中的项目

时间:2016-04-22 14:46:01

标签: angularjs angularjs-ng-repeat

我使用select将项目添加到ng-repeat,但我希望添加的项目在添加到ng-repeat $scope后从选择中删除。 IE浏览器。从已下拉的下拉列表中筛选出玩家。

我怎样才能做到这一点?

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

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:0)

作为选项,请参阅this

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

它在两个控件中使用相同的集合(select和ng-repeat)。

无论如何,有很多不同的解决方案,最好的解决方案取决于上下文。