2014-03-13 35 views
1

我有一些数据以ng格表示。如何让我的网格重新排序?

这些数据中的一些在页面加载后几乎立即显示;其他数据速度较慢,一旦收到,我们会将其拼接。

在此过程中,如果网格设置为在网格中呈现数据的前半部分时排序不在那里的数据,则排序可能会中断。

有没有一种很好的方式来告诉网格重新排序自己,并保存多个列以及排序方向一旦所有的数据已收到?

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; 
} 

http://jsfiddle.net/akukucka/4vrQq/

+1

你可以添加一些代码吗? –

+1

触发更多数据加载到网格中的特定操作是什么? – trevorc

回答

1

不知道这是否是你想要的东西:

$scope.resort= function(){ 
    $scope.gridOptions.sortBy('age'); 
}; 

Plunker is here

因为我没有任何代码,你必须找到一个地方/时做整理自己。

+1

谢谢你的回应!我用更多的细节和小提琴更新了原始问题。 –