ng-grid不会滚动到最后一行

时间:2013-11-10 12:23:52

标签: angularjs ng-grid

使用ng-grid我想通过在添加到列表底部时滚动到它来显示新添加的行。

请参阅插件:http://plnkr.co/edit/4jgy9wwr2HRhfhgKMKcX?p=preview

var grid = $scope.gridOptions.ngGrid;
grid.$viewport.scrollTop((($scope.myData.length - 1)* grid.config.rowHeight));

我不明白为什么网格不会一直向下滚动。我尝试添加rowHeight,但是每次网格都不会滚动到最后一行。

我知道通过将记录添加到列表顶部将解决问题我将对网格进行排序,其性质将空记录推送到底部。

2 个答案:

答案 0 :(得分:9)

你不需要“ngGridEventData”,如果你记录它,你会发现他被解雇了你网格上的每一个现有行,这不是最佳的。

如前所述,您可以使用$ timeout服务,延迟时间为0。这听起来有点棘手,它可能不是最佳实践,但它确实有效。

将其加载到您的控制器中:

app.controller('MyCtrl', function($scope, $timeout) {
    //load
}

然后在你的addNew():

$scope.addNew = function () {

    $scope.myData.push({ name: "new", age: 100 });

    $timeout(function () {
        var grid = $scope.gridOptions.ngGrid;
        $scope.gridOptions.selectItem($scope.myData.length - 1, true);
        grid.$viewport.scrollTop((($scope.myData.length - 1) * grid.config.rowHeight));
    }, 0);

};

在此处查看结果:http://plnkr.co/edit/4HNqFh7uu9IWCjDVt5WR?p=preview

答案 1 :(得分:2)

实际上Bug位于ng-grid js文件中以计算正确的滚动偏移量。 请点击链接 http://pushkarkinikar.wordpress.com/2014/07/03/ng-grid-scrolling-issue/

,其中 我已经详细解释了