Предотвратить загрузку angular-ui-ui-scroll в скрытый раздел

У меня есть директива angular-ui ui-scroll (1.3.0), живущая в div, который по умолчанию скрыт с помощью ng-show. Когда он скрыт, ui-scroll просто загружает данные из источника данных, даже если высота ui-scroll-viewport установлена. Если div показан, он ведет себя правильно. Итак, сейчас мой div имеет ширину 1px:/

Я уверен, что могу решить эту проблему с помощью ng-if, чтобы динамически добавить это в DOM. Тем не менее, я хотел, чтобы div спрятался / показывался ответственно - так что изгнали из css.

Любые предложения о том, как сделать так, чтобы пользовательский интерфейс загружал только 1 страницу из буфера, когда он скрыт? благодарю вас.

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

Также вам, вероятно, нужно инициировать перезагрузку прокрутки один раз ( адаптер doc):

$scope.$watch('isScrollerVisible', function(value) {
  if(value) {
    $scope.datasourceAdapter.reload()
  }
});
Другие вопросы по тегам