2

我是角度的新手。在我的单页 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。我对两个列表都使用粘性状态来维护列表元素的主详细信息视图之间的状态。

4

1 回答 1

2

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

无限滚动禁用(可选) - {boolean} - 一个布尔表达式,当为真时,表示即使满足所有其他条件,也不应评估无限滚动表达式。

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

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

于 2016-12-03T12:50:41.603 回答