2017-02-28 71 views
0

如果第一个prematchGame有1和2的值,然后添加标题,但在这种情况下,我有一些问题,,,第一个元素没有1和2的值,但第3和第4有它。 (见图)检查ng-repeat上的所有项目

我该如何检查,如果1个元素在ng-repeat中有1个和2个值然后添加标题。

我的代码 (对于英语不好对不起)

<ul> 
    <li ng-show="groupGames[0].firstMarket.events.P1" title="1">1</li> 
    <li ng-show="groupGames[0].firstMarket.events.P2" title="2">2</li> 
<ul> 

<div ng-repeat="prematchGame in groupGames track by prematchGame.id"> 
    ... 
</div> 

enter image description here

+0

你是否愿意将包含1和2值的groupGames的所有元素添加到标题中? – Pengyy

+0

@Pengyy我想检查,如果只有1个prematchGame groupGames有1和2的值,那么添加标头 –

+0

,所以会有两个或更多的prematchGame包含值1和2?你想要将第一个显示给标题? – Pengyy

回答

1

定义一个函数来筛选目标项目。

$scope.hasItemWithProperty = function (key) { 
    return $scope.groupGames.some(prematchGame => { 
     return prematchGame.firstMarket.events.hasOwnProperty(key); 
    }); 
} 

使用该函数在模板这样

<ul> 
    <li ng-show="hasItemWithProperty('P1')" title="1">1</li> 
    <li ng-show="hasItemWithProperty('P2')" title="2">2</li> 
<ul> 

这是上述的一个plunker

+0

为什么在这个控制台后,我有这个问题...不能读取属性'forEach'的未定义? –

+0

你能告诉组游戏的类型吗?是不是一个数组?还要检查你是否在groupGames中有数据。根据错误信息, – Pengyy

+0

组游戏是对象 –