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

标签 angularjs angular-ui-router infinite-scroll ng-show nginfinitescroll

我是 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/

相关文章:

javascript - AngularJS + ag-grid : sticky/remembered selections with virtual paging/infinite scrolling

javascript - 子状态不会以 Angular 触发父状态

javascript - Angular JS ui-router如何从父级重定向到子状态?

ExtJS Grid 呈现的行数多于 pagesize 中指定的行数

javascript - Angular View ,如果未经身份验证,则显示单个 View

javascript - Angular js : $injector:modulerr Module Error

forms - AngularJS 和 Tab 顺序(禁用按钮)

angularjs - ui-ui IE8 Accordion

javascript - 当用户滚动时继续修改 DOM

pagination - 如何在服务器端和客户端使Select2无限滚动分页