Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何在角度上显示当前行索引和ng栅格?_Angularjs_Indexing_Row_Ng Grid - Fatal编程技术网

Angularjs 如何在角度上显示当前行索引和ng栅格?

Angularjs 如何在角度上显示当前行索引和ng栅格?,angularjs,indexing,row,ng-grid,Angularjs,Indexing,Row,Ng Grid,这是我的专栏 $scope.communityColDef = [{ field: 'name', displayName: 'Name' }, { field: 'description', displayName: 'Description' }]; 我的数据中没有索引号,但在网格中显示时,我希望使用行号显示它。 jqGrid中有一个设置行数的选项,但我在angularJS中找不到类似的功能。在将数据设置为网格之前,在数据json中添加索

这是我的专栏

$scope.communityColDef = [{ field: 'name', displayName: 'Name' },
                          { field: 'description', displayName: 'Description' }];
我的数据中没有索引号,但在网格中显示时,我希望使用行号显示它。
jqGrid中有一个设置行数的选项,但我在angularJS中找不到类似的功能。

在将数据设置为网格之前,在数据json中添加索引选项

代码

$scope.communityColDef = [{
    field: 'index',
    displayName: 'Sr. Number'
}, {
    field: 'name',
    displayName: 'Name'
}, {
    field: 'description',
    displayName: 'Description'
}];

$scope.items = data;
//adding index for showing serial number
angular.forEach($scope.items, function(item, index) {
    item.index = index + 1;
});
$scope.gridOptions.columnDefs = $scope.communityColDef;
$scope.gridOptions.data = $scope.items;

希望这能对您有所帮助。谢谢。

好的,我找到了一种方法,但它有多个问题。首先,它只是视觉上的,这意味着我没有显式地设置字段数据,也没有像前面的答案那样修改项目。此外,我不知道我的解决方案如何与不同的排序或其他ngTable函数交互

代码如下:

var app = angular.module('myApp', ['ngGrid']);
app.controller('MyCtrl', function($scope) {
    $scope.myData = [{name: "Moroni", age: 50},
                     {name: "Tiancum", age: 43},
                     {name: "Jacob", age: 27},
                     {name: "Nephi", age: 29},
                     {name: "Enos", age: 34}];  
    $scope.gridOptions = { 
        data: 'myData',
        columnDefs: [
        {displayName:'#', cellTemplate: '<div>{{$parent.$index + 1}}</div>'},
        {field: 'name', displayName: 'Name'},
        {field:'age', displayName:'Age'}]
    };
});
var-app=angular.module('myApp',['ngGrid']);
应用程序控制器('MyCtrl',函数($scope){
$scope.myData=[{name:“Moroni”,年龄:50},
{姓名:“Tiancum”,年龄:43},
{姓名:“雅各布”,年龄:27},
{姓名:“尼菲”,年龄:29},
{姓名:“埃诺斯”,年龄:34}];
$scope.gridOptions={
数据:“myData”,
columnDefs:[
{displayName:'#',cellTemplate:'{{$parent.$index+1}}},
{字段:'name',显示名称:'name'},
{字段:'age',显示名称:'age'}]
};
});
这是一个纯粹的装饰性解决方案,行号一直添加到左侧的一个新列中,与jquery中的工作方式类似。这样做的好处是,您不必仅仅为了启用行号而修改数据或项目,而是会遇到我前面提到的问题


显示我的解决方案的plnkr。

您也可以在单元格模板中使用row.rowIndex。我修改了上面的内容

var-app=angular.module('myApp',['ngGrid']);
应用程序控制器('MyCtrl',函数($scope){
$scope.myData=[{name:“Moroni”,年龄:50},
{姓名:“Tiancum”,年龄:43},
{姓名:“雅各布”,年龄:27},
{姓名:“尼菲”,年龄:29},
{姓名:“埃诺斯”,年龄:34}];
$scope.gridOptions={
数据:“myData”,
columnDefs:[
{displayName:'#',cellTemplate:'{{row.rowIndex+1}}},
{字段:'name',显示名称:'name'},
{字段:'age',显示名称:'age'}]
};
});
var app = angular.module('myApp', ['ngGrid']);
app.controller('MyCtrl', function($scope) {
    $scope.myData = [{name: "Moroni", age: 50},
                     {name: "Tiancum", age: 43},
                     {name: "Jacob", age: 27},
                     {name: "Nephi", age: 29},
                     {name: "Enos", age: 34}];  
    $scope.gridOptions = { 
        data: 'myData',
        columnDefs: [
        {displayName:'#', cellTemplate: '<div class="ngCellText" data-ng-class="col.colIndex()"><span>{{row.rowIndex + 1}}</span></div>'},
        {field: 'name', displayName: 'Name'},
        {field:'age', displayName:'Age'}]
    };
});