我的页面上有一个角度驱动的表格,有排序功能。当我单击一列来更改排序时,它会为新数据发出$ http请求并重新应用它。一切运作良好,但它令人烦恼地将页面滚动到顶部。
我的排序链接由指令呈现:<a ng-click='sort()' href='#' ng-transclude></a>
我的排序处理程序也在指令中定义:
link: function (scope, el, attrs) {
scope.sort = function () {
// Want to check the pagerInfo of the controller
scope.$parent.onsort(scope.sortby, sortDir);
return false;
};
}
这只是调用控制器上的函数来重新获取数据。
我试过了:
var ngGrid = angular.module("ngGrid", []).value('$anchorScroll', angular.noop);
min-height
以防引起它ng-href
代替href。答案 0 :(得分:3)
找到它。
在我的sort函数中,我需要event.preventDefault();
全功能:
link: function (scope, el, attrs) {
scope.sort = function () {
// Want to check the pagerInfo of the controller
var sortDir = "desc";
if (scope.$parent.pagerInfo.sortby == scope.sortby) {
sortDir = scope.$parent.pagerInfo.sortdir == "asc" ? "desc" : "asc";
}
scope.$parent.onsort(scope.sortby, sortDir);
event.preventDefault();
};
}