[AngularJS]Angularjs ng-repeat 筛选的一个属性,属性重复问题

发布时间: 2017/4/16 20:51:58
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想要通过团队来筛选我的阵列和展示给所有玩家在每个团队中,但如果团队的名称如是类似。团队 β' 和 '团队 β z' 重复的问题发生。 玩家所示两队......

下面是示例代码︰ https://jsfiddle.net/lukasz9999/qpqsuvc5/1/

我认为问题奠定了在滤波方法

<div ng-repeat="playerPerTeam in playersToFilter() | filter:filterTeams">
   <b>{{playerPerTeam.team}}</b>

<li ng-repeat="player in players | filter:{team: playerPerTeam.team} | filter:searchFilter">{{player.name}}</li>        
</div>


$scope.players = [{name: 'Gene', team: 'team alpha'},
                {name: 'George', team: 'team beta'},
                {name: 'Steve', team: 'team gamma'},
                {name: 'Paula', team: 'team beta'},
                {name: 'Paula2', team: 'team beta z'},
                {name: 'Scruath of the 5th sector', team: 'team gamma'}];



var indexedTeams = [];

$scope.playersToFilter = function() {
    indexedTeams = [];
    return $scope.players;

}

$scope.filterTeams = function(player) {

    var teamIsNew = indexedTeams.indexOf(player.team) == -1;
    console.log("nt "+teamIsNew)
    if (teamIsNew) {
        indexedTeams.push(player.team);
    }
    return teamIsNew;
}
  • 此代码生成此列表︰
  • 阿尔法分队
    • 基因
  • 团队测试版
    • 乔治 ·
    • 葆拉
    • Paula2
  • 团队伽玛
    • 史蒂夫 ·
    • 第五部门 Scruath
  • 团队测试版 z
    • Paula2

名称︰ Paula2 应只在"团队 β z"却在"团队 beta",以及。

感谢您的任何建议

解决方法 1:

true 后只是筛选语句就可以做到。所以,

filter:{team: playerPerTeam.team}

应该是

filter:{team: playerPerTeam.team}:true

为精确匹配。https://docs.angularjs.org/api/ng/filter/filter

你可以看到呆瓜

官方微信
官方QQ群
31647020