我使用的是AngularJS,其中ngInfiniteScroll和angular-masonry。Angular:在砌體中使用ngInclude時無限滾動不起作用
我目前在PHP中有一些我的前端部分,但我試圖將所有內容都移植到HTML + JS。
這是目前工作正常:
<div id="flagevent-container"
infinite-scroll='getFlags()'
infinite-scroll-disabled='loadingMore'
infinite-scroll-distance='0'
masonry="{'gutter': 10}" preserve-order load-images="false"
item-selector=".flagevent">
<div masonry-brick id="flagevent{{flagevent.id}}" class="flagevent"
ng-repeat="flagevent in flagsInWall">
<?php include "flagevent.inc.html"; ?>
</div>
</div>
現在我想從PHP的include
到角的ng-include
移動。我將在masonry-brick
水平插入:
<div id="flagevent-container"
infinite-scroll='getFlags()'
infinite-scroll-disabled='loadingMore'
infinite-scroll-distance='0'
masonry="{'gutter': 10}" preserve-order load-images="false"
item-selector=".flagevent">
<div masonry-brick id="flagevent{{flagevent.id}}" class="flagevent"
ng-repeat="flagevent in flagsInWall"
ng-include="'flagevent.inc.html'">
</div>
</div>
但後來無限滾動無法正常工作;方法getFlags()
被重複調用而不滾動,從而檢索所有項目,並且所有元素一次被加載。
發生了什麼事?
可能是因爲您現在正在客戶端加載內容,而不是從服務器發送它,第一次頁面加載無限滾動內容是空的,因此立即到達結束並調用getFlags? – toskv
嗯,聽起來很合理...... – Jago
如果所有的getFlags函數都是在flagsInWall變量中添加一些值,那它應該只調用一次。 :/ – toskv