2017-02-28 70 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

組遊戲是對象 –