防止角度ui ui滚动加载隐藏div

时间:2015-08-13 18:47:08

标签: angularjs angular-ui ui-scroll

我有一个angular-ui ui-scroll指令(1.3.0),它存在于一个div中,默认情况下是一个ng-show隐藏的。当它被隐藏时,即使设置了ui-scroll-viewport的高度,ui-scroll也会继续从数据源加载数据。如果显示div,则表现正常。所以,现在我的div是1px宽:/

我确定我可以使用ng-if来动态地将其添加到DOM中来解决这个问题。但是,我希望div能够相应地隐藏/显示 - 因此驱逐了css。

关于如何使用ui-scroll的任何建议只在隐藏时从缓冲区加载1页?谢谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试通过数据源实现来管理它:

$scope.datasource.get = function(index, count, success) {
  // prevent data getting while ui-scroll is invisible
  if (!$scope.isScrollerVisible) {
    return; // or let him request for 1 pack and prevent others, any logic
  }
  // get required data and pass it into success callback
  var result = [];
  for (var i = index; i <= index + count - 1; i++) {
    result.push({text: "item #" + i});
  }
  success(result);
}

此外,您可能需要启动一次滚动重新加载(adapter doc):

$scope.$watch('isScrollerVisible', function(value) {
  if(value) {
    $scope.datasourceAdapter.reload()
  }
});