我是 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 View 中,如下所示。
<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。我对两个列表都使用粘性状态来维护列表元素的主详细 View 之间的状态。最佳答案
来自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 隐藏,而无需隐藏的无限滚动尝试在每次滚动时加载更多项目。
关于angularjs - 带有 ng-show 和粘性状态的 ng-infinite-scroll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40818089/