【发布时间】:2017-04-10 15:04:22
【问题描述】:
我是 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。我对两个列表都使用粘性状态来维护列表元素的主详细信息视图之间的状态。
【问题讨论】:
-
或许使用
ng-class? -
有什么问题?
-
@Ladmerc 我不知道如何让两个滚动条都工作。
-
这里的文档github.com/sroze/ngInfiniteScroll 说你应该定义
<div infinite-scroll="$ctrl.myPagingFunction()" infinite-scroll-distance="3"></div>;假设您在控制器中定义了myPagingFunction -
@Ladmerc 函数已正确触发。问题在于触发的时机。触发器被触发多次,因为 ng-show 导致一个 div 的高度设置为 0
标签: angularjs angular-ui-router infinite-scroll ng-show nginfinitescroll