我在ng-grid中显示了一些数据。
部分数据在页面加载后几乎立即显示;其他数据较慢,我们收到后会将其拼接。
在执行此操作时,如果网格设置为在网格中呈现数据的前半部分时对数据进行排序,则排序可能会中断。
有没有一种很好的方法可以让网格重新排序并保留多个列,并在收到所有数据后对方向进行排序?
JS
var app = angular.module('myApp', ['ngGrid']);
app.controller('MyCtrl', function ($scope) {
$scope.myData = [{name: "Moroni", age: 50},
{name: "Tiancum", age: 43},
{name: "Jacob", age: 43},
{name: "Nephi", age: 29},
{name: "Enos", age: 34}];
$scope.gridOptions = {
data: 'myData',
columnDefs: [{ field: "name", },
{ field: "age" },
{ field: "state" }],
sortInfo: {
fields: [ 'age', 'state' ],
directions: [ 'asc', 'desc' ]
}
};
var lateData = [
{ name: 'Moroni', state: 'NY' },
{ name: 'Tiancum', state: 'CA' },
{ name: 'Jacob', state: 'PA' },
{ name: 'Nephi', state: 'AK' },
{ name: 'Enos', state: 'MO' }
];
setTimeout(function () {
$scope.myData = _.merge($scope.myData, lateData);
$scope.$digest();
}, 3000);
});
HTML
<div ng-app="myApp">
<div ng-controller = "MyCtrl">
<div ng-grid="gridOptions" class="gridStyle"></div>
</div>
</div>
CSS
.gridStyle {
border: 1px solid rgb(212, 212, 212);
width: 100%;
height: 500px;
}
答案 0 :(得分:1)
不确定这是否是您想要的:
$scope.resort= function(){
$scope.gridOptions.sortBy('age');
};
由于我没有您的任何代码,您必须找到一个地方/何时为您自己进行排序。