ng-infinite-scroll с ng-show и липкими состояниями

Я новичок в угловом. В моем одностраничном веб-приложении у меня есть две вкладки с ng-infinite-scroll в каждой из них. Две вкладки перемещаются между ними с помощью навигационной панели,

    <div ng-show="$state.includes('base.videolist')||$state.includes('base.movielist')  ">
<ul class="nav navbar-fixed-top roboto nav-tabs">
   <li ui-sref="base.videolist" ui-sref-active="active"><a>Videos</a></li>
   <li ui-sref="base.movielist" ui-sref-active="active"><a>Movies</a></li>
</ul>
</div>

и каждая вкладка находится в двух представлениях пользовательского интерфейса, как показано ниже.

<div id="bvl" ui-view="videolist" ng-show="$state.includes('base.videolist')"></div>
<div id="bml" ui-view="movielist" ng-show="$state.includes('base.movielist')"></div>

При использовании ng-show высота скрытого div устанавливается равной 0 с помощью angular. тем самым запуская бесконечную прокрутку бесконечно.

Я не хочу использовать ng-if, потому что хочу сохранить состояние прокрутки списков.

Как справиться с этим?

PS. я использую липкие состояния для обоих списков, чтобы поддерживать состояния между основным подробным представлением элементов списка.


person 55597    schedule 26.11.2016    source источник
comment
Возможно, использовать ng-class?   -  person Stubbies    schedule 26.11.2016
comment
какой вопрос?   -  person Ladmerc    schedule 27.11.2016
comment
@Ladmerc Я не знаю, как заставить работать оба скроллера.   -  person 55597    schedule 27.11.2016
comment
В документации здесь github.com/sroze/ngInfiniteScroll говорится, что вы должны определить <div infinite-scroll="$ctrl.myPagingFunction()" infinite-scroll-distance="3"></div>; это предполагает, что вы определили myPagingFunction в контроллере   -  person Ladmerc    schedule 27.11.2016
comment
@Ladmerc функции запускаются правильно. Проблема заключается во времени срабатывания триггера. Триггер срабатывает несколько раз, потому что высота одного div установлена ​​​​на 0 из-за ng-show   -  person 55597    schedule 27.11.2016
comment
У вас есть скрипка, чтобы воспроизвести проблему?   -  person Aruna    schedule 03.12.2016
comment
@Aruna, я не знаю, как создать скрипку, поскольку страница пытается извлечь данные из моей локальной базы данных.   -  person 55597    schedule 03.12.2016
comment
Вы можете жестко закодировать данные, закомментировав часть API.   -  person Aruna    schedule 03.12.2016


Ответы (1)


из https://sroze.github.io/ngInfiniteScroll/documentation.html

бесконечная прокрутка-отключена (необязательный) — {boolean} — логическое выражение, которое, если оно истинно, указывает, что выражение бесконечной прокрутки не должно оцениваться, даже если выполняются все остальные условия.

Если вы хотите использовать ng-show="showIt" для скрытия элемента, содержащего бесконечную прокрутку, вы можете добавить Infinite-scroll-disabled="!showIt" чтобы он не пытался загружать больше скрытых элементов.

Вот пример jsbin с двумя элементами div с бесконечной прокруткой, которые могут каждый будет скрыт с помощью ng-show без скрытой бесконечной прокрутки, пытающейся загрузить больше элементов при каждой прокрутке.

person Rocky Sims    schedule 03.12.2016
comment
как сохранить состояния прокрутки каждого из div при переключении между ними? - person 55597; 07.12.2016