带有 ng-show 和粘性状态的 ng-infinite-scroll

ng-infinite-scroll with ng-show and sticky states

我是 angular 的新手。在我的单页 Web 应用程序中,我有两个选项卡,每个选项卡中都有 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>

并且每个选项卡位于两个 ui 视图中,如下所示。

<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 的高度被 angular 设置为 0。从而无限地触发无限滚动。

我不想使用 ng-if,因为我想保持列表的滚动状态。

如何处理?

PS。我对两个列表都使用粘性状态来维护列表元素的主详细视图之间的状态。

来自 https://sroze.github.io/ngInfiniteScroll/documentation.html

infinite-scroll-disabled (optional) - {boolean} - A boolean expression that, when true, indicates that the infininite scroll expression should not be evaluated even if all other conditions are met.

如果您想使用 ng-show="showIt" 隐藏包含无限滚动的元素,您可以添加 infinite-scroll-disabled="!showIt" 来阻止它尝试加载更多项目隐藏时。

这里有一个 jsbin example 有 2 个无限滚动 div,每个 div 都可以用 ng-show 隐藏,而不是隐藏的无限滚动试图在你每次滚动时加载更多项目。