2016-09-21 156 views
2

我想創建一個角度編號的表格,Numareting表角NG-重複

我試圖

<tr ng-repeat="item in data"> 
    <td>{{$index}}</td> 
    <td>{{item.name}}</td> 
</tr> 

它的工作原理,但是當我使用順序排序表按我想留指數-ES 所以先「」在TR必須始終類似的東西 - 1,2,3,4 和秩序的變化是2,1,4,3和類似的東西

對不起我的英語不好

我添加的jsfiddle例如

http://jsfiddle.net/Lvc0u55v/9907/

+0

只是爲了確保,你要在第一行永遠是數字1,第二總是2,等等? – Passersby

+0

確切的第一行始終是數字1,儘管通過改變順序 –

回答

0

我發現最簡單的方法,用CSS

table{ 
    counter-reset: rows; /* initalize the counter variable */ 
} 
tr{ 
counter-increment: rows; /* increment the counter every time a tr is  encountered */ 
} 
td{ /* just for demo */ 
    vertical-align: top; 
    width: 100px; 
} 
td:first-child:before{ /* add the counter value before the first td in every row */ 
    content: counter(rows) ". "; 
} 
1

$index變量是不是你data但數組只索引的一部分。當您使用不同參數排列陣列時,您的data陣列值的順序發生了變化,但陣列索引與之前保持一致。爲了解決這個問題,你可以把一個連續的value作爲data數組的每個對象的屬性。然後顯示顯示該屬性而不是顯示數據數組的$index

例如在控制器:

for(var i = 0; i < $scope.data.length; i++){ 
    $scope.data[i].sl = i+1; 
} 

鑑於:

<tr ng-repeat="item in data"> 
    <td>{{item.sl}}</td> 
    <td>{{item.name}}</td> 
</tr> 
+0

但是當排序改變時會發生什麼?我想在你的例子中第一個td編號爲1,2,3,4等等,索引只在第一次可用,當用戶改變排序順序時,sl字段值將隨機移動,所以不會是1,2,3, 4 –

+0

因此,當您通過過濾器應用順序時,您不希望它被洗牌嗎? – Imran

+0

是的,你是對的 –

0

一種選擇是不排序標記列中,是這樣的:

$scope.dtColumnDefs = [ 
      DTColumnDefBuilder.newColumnDef(0).notSortable() 
]; 

實施例的數據表:

<table dt-column-defs="dtColumnDefs"> </table> 

Here是一些文檔。

但是,將某些表數據標記爲無法用Jquery排序是可能的,因爲@dSquared answer

+0

你寫了datatables的例子,我沒有用它,只是原生的ng-repeat –