2017-05-05 116 views
0

我有數據,這樣的事情(它來自羣,後端):組中的Ng重複| AngularJS

$scope.games = [ 
    {"categories":["1"],"id":"id1"}, 
    {"categories":["1"],"id":"id2"}, 
    {"categories":["1"],"id":"id3"}, 
    {"categories":["1"],"id":"id4"}, 
    {"categories":["2"],"id":"id5"}, 
    {"categories":["2"],"id":"id6"}, 
    {"categories":["2"],"id":"id7"}, 
    {"categories":["3"],"id":"id8"}, 
    {"categories":["3"],"id":"id9"} 
    {"categories":["4"],"id":"id10"} 
]; 

所以,現在在沒有任何類別分組的內容及其可見,像

id1 id2 id3 id4 id5 id6 id7 id8 id9 id10 

但我需要這樣做:

Category '1' 
id1 id2 id3 id4 

Category '2' 
id5 id6 id7 

Category '3' 
id8 id9 

Category '4' 
id10 

HTML源代碼:

<ul> 
    <li ng-repeat="game in games by game.id"> 
    ...    
    </li> 
</ul> 

任何想法如何? 在此先感謝!

+0

你可以創建你自己的GROUPBY過濾器或使用https://github.com/a8m/angular-filter#groupby。我實際上只是用它來按日期分組一些項目 – Ronnie

+0

看起來很棒。 –

回答

0

爲什麼不讓日期結構化?
對於(最簡單的)例子:

$scope.games = { 
    "1": ["id1", "id2", "id3", "id4"], 
    "2": ["id5", "id6", "id7"] 
} 

...等等。

+0

我無法做到這一點,數據來自另一個國家的後端 –

+0

要添加到這個,你可以預處理數據和ng - 重複預處理的數據 – Ronnie

0

試試這個。

<ul> 
    <li ng-repeat="(categories, catGames) in (games | groupBy: 
     'categories')"> 
    {{categories}} 
    <ul> 
     <li ng-repeat="game in catGames"> 
     {{game.id}} 
     </li> 
    </ul> 
    </li> 

+0

沒有'groupBy'內置於有角的核心 – charlietfl

+0

什麼是catGames? –

+0

首先,我忘了提及你必須使用外部api [angular-filter](https://github.com/a8m/angular-filter)。其次,在這個例子中,catGames是針對特定類別的遊戲列表,並且針對每個類別創建了這樣的列表。 –