2017-05-25 55 views
0

我試圖創建一個表,我有以下代碼角1.5創建一個表,避免重複值

<tr ng-repeat="value in sd.data> 
    <td >{{value.syscode}}</td> 
    <td>{{value.out_signal_id}}</td> 
    <td>{{value.sig_epoch_utc}}</td> 
    <td>{{value.num_of_signals}}</td> 
    <td>{{value.status_code}}</td> 
    <td>{{value.status_note}}</td> 


    <tr > 

這是表的樣子後的陣列已經被循環的例子NG-重複

syscode | out_signal_id | sig_epoch_utc | num_of_signals | status_code | status_note 


2221111 | 12323454343 | 2093236693029 | 120000000000 | 3030000000| no-errors 

2221111 | 12323454343 | 2093235593029 | 120000000000 | 3030000000| no-errors-1 

2221111 | 12323454343 | 2093233393029 | 120000000000 | 3030000000| no-errors-2 

我想在這種情況下,我只需要僅僅一個「2221111」不是他們的3,我也期待通過其他的答案了類似這樣的問題,跳過「syscode」的重複值,但沒有回答我的問題。任何答案將不勝感激謝謝!

+0

你關心'status_note'顯示哪個版本嗎? – WhiteHotLoveTiger

+0

在第一列中使用rowspan屬性。 – Bruno

+0

@WhiteHotLoveTiger必須呈現所有status_note值,唯一不顯示的值是syscode的重複值,但順序並不重要,如果這是您所問的,則status_note是否處於是否要訂購 – hjm

回答

1

這裏是一個工作plunker: https://plnkr.co/edit/zWXR7k2H9hMwza5H2ZfU?p=preview

我假設這些行將基於s yscode和具有相同syscode的所有行將相鄰。

跟蹤ng-repeat $ index ng-repeat="value in sd.data track by $index"並將當前行中的syscode的值與前一行進行比較。如果相同,則顯示空白值。 <td>{{($index>0 && sd.data[$index].syscode === sd.data[$index-1].syscode) ? '' : value.syscode}}</td>

1

如果狀態註釋將始終爲'無錯',並且這是您想要的數據行,那麼可以使用ng-if指令輕鬆修復此問題。否則,我建議過濾數據集並刪除重複值並將該數組放在範圍上或創建過濾器。

<tr ng-repeat="value in sd.data" ng-if="value.status_note === 'no-errors'> 
    <td >{{value.syscode}}</td> 
    <td>{{value.out_signal_id}}</td> 
    <td>{{value.sig_epoch_utc}}</td> 
    <td>{{value.num_of_signals}}</td> 
    <td>{{value.status_code}}</td> 
    <td>{{value.status_note}}</td> 
    <tr > 
1

你可以在syscode屬性的「獨一無二」的過濾器。你必須得角UI:

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.js"></script> 

添加它作爲一個模塊依賴:

var app = angular.module('yourProjectName', ['ui.filters']); 

然後指定過濾器:

<tr ng-repeat="value in sd.data | unique:'syscode'" >