排序后访问 ngTable 中的行
Accessing row in ngTable after it was sorted
In this plunk 我有一个 ngTable
三行。我需要知道的是排序后的行号。例如,按名称升序对 ngTable
进行排序。您应该在名称列中看到 'aaa'、'bbb' 和 'ccc'。然后单击按钮,我希望看到第一行已更新,但最后一行设置了新值。发生这种情况是因为 $scope.data
数组本身未排序,但 ngTable
在内部对副本进行排序。我需要更新第一个 "visible" 行,我该如何实现?
HTML
<table ng-table="tableParams" class="table table-bordered">
<tbody>
<tr ng-repeat="u in $data">
<td title="'User ID'" sortable="'uid'" >
{{ u.uid }}
</td>
<td title="'Name'" sortable="'nm'" >
{{ u.nm }}
</td>
</tbody>
</table>
Javascript
var app = angular.module('app', ['ngTable']);
app.controller('myCtl', function($scope, NgTableParams) {
$scope.data = [{
uid: 1,
nm: 'ccc'
}, {
uid: 2,
nm: 'bbb'
}, {
uid: 3,
nm: 'aaa'
}];
$scope.tableParams = new NgTableParams({
count: 5
}, {
data: $scope.data
});
$scope.updateRow = function(row){
$scope.data[row].uid = 999;
$scope.data[row].nm = 'XXXXX';
$scope.tableParams.reload();
};
});
您可以访问 tableParams.data
中的数据。因此,要执行上面的模型,您只需要执行以下操作:
$scope.updateRow = function(){
$scope.tableParams.data[0].uid = 999;
$scope.tableParams.data[0].nm = 'XXXXX';
$scope.data = $scope.tableParams.data;
};
In this plunk 我有一个 ngTable
三行。我需要知道的是排序后的行号。例如,按名称升序对 ngTable
进行排序。您应该在名称列中看到 'aaa'、'bbb' 和 'ccc'。然后单击按钮,我希望看到第一行已更新,但最后一行设置了新值。发生这种情况是因为 $scope.data
数组本身未排序,但 ngTable
在内部对副本进行排序。我需要更新第一个 "visible" 行,我该如何实现?
HTML
<table ng-table="tableParams" class="table table-bordered">
<tbody>
<tr ng-repeat="u in $data">
<td title="'User ID'" sortable="'uid'" >
{{ u.uid }}
</td>
<td title="'Name'" sortable="'nm'" >
{{ u.nm }}
</td>
</tbody>
</table>
Javascript
var app = angular.module('app', ['ngTable']);
app.controller('myCtl', function($scope, NgTableParams) {
$scope.data = [{
uid: 1,
nm: 'ccc'
}, {
uid: 2,
nm: 'bbb'
}, {
uid: 3,
nm: 'aaa'
}];
$scope.tableParams = new NgTableParams({
count: 5
}, {
data: $scope.data
});
$scope.updateRow = function(row){
$scope.data[row].uid = 999;
$scope.data[row].nm = 'XXXXX';
$scope.tableParams.reload();
};
});
您可以访问 tableParams.data
中的数据。因此,要执行上面的模型,您只需要执行以下操作:
$scope.updateRow = function(){
$scope.tableParams.data[0].uid = 999;
$scope.tableParams.data[0].nm = 'XXXXX';
$scope.data = $scope.tableParams.data;
};