AngularJS基于ngInfiniteScroll實(shí)現(xiàn)下拉滾動(dòng)加載的方法
本文實(shí)例講述了AngularJS基于ngInfiniteScroll實(shí)現(xiàn)下拉滾動(dòng)加載的方法。分享給大家供大家參考,具體如下:
1.分頁(yè)加載數(shù)據(jù)的基礎(chǔ)上,如何通過(guò)滾動(dòng)加載,實(shí)現(xiàn)分頁(yè)加載數(shù)據(jù)的效果,github上,針對(duì)AngularJS,有一款不錯(cuò)的插件,地址為:https://github.com/sroze/ngInfiniteScroll
2.下面來(lái)看官方給出的文檔
(1)使用樣例:
<ANY infinite-scroll='{expression}'
[infinite-scroll-distance='{number}']
[infinite-scroll-disabled='{boolean}']
[infinite-scroll-immediate-check='{boolean}']
[infinite-scroll-listen-for-event='{string}']>
</ANY>
解釋各個(gè)屬性(指令的含義)
①infinite-scroll - {expression} 當(dāng)滾動(dòng)到瀏覽器底部時(shí),所執(zhí)行的函數(shù)或者表達(dá)式,通常是函數(shù)形式。
②infinite-scroll-distance (optional) - {number} 表達(dá)式或者數(shù)字,如果是一個(gè)數(shù)字,表示滾動(dòng)條距離瀏覽器底部多少遠(yuǎn)時(shí),執(zhí)行①中里面的函數(shù)。如果將這個(gè)值設(shè)置為2,對(duì)于1000px高度的元素,當(dāng)元素底部距離瀏覽器窗口底部距離在2000px像素以內(nèi),沒(méi)滾動(dòng)一次,都會(huì)執(zhí)行一次①里面的函數(shù)。(這個(gè)值默認(rèn)是0,即當(dāng)元素滾動(dòng)到元素底部達(dá)到瀏覽器窗口(滾動(dòng)區(qū)域)底部時(shí),執(zhí)行滾動(dòng)區(qū)域里面的函數(shù)。
③infinite-scroll-disabled (optional) - {boolean} 一個(gè)布爾值,用于標(biāo)志滾動(dòng)表達(dá)函數(shù)能否執(zhí)行,如果值為true,表示滾動(dòng)函數(shù)不能被執(zhí)行。這個(gè)屬性,通常用于暫?;蛘咄V?jié)L動(dòng)。比如當(dāng)我們?cè)贏JAX請(qǐng)求數(shù)據(jù)的過(guò)程中,移動(dòng)了滾動(dòng)條,這時(shí)就需要設(shè)置這個(gè)屬性,禁止?jié)L動(dòng)函數(shù)的執(zhí)行。
④infinite-scroll-immediate-check (optional) - {boolean} 一個(gè)布爾值,用于標(biāo)志指令在初始化頁(yè)面時(shí),是否為初始執(zhí)行一次(即使這種情況下,沒(méi)有初始滾動(dòng)),默認(rèn)值為true,表示初始會(huì)執(zhí)行一次這①里面的函數(shù)。
⑤infinite-scroll-listen-for-event (optional) - {string} 一個(gè)事件,當(dāng)接受到這個(gè)事件時(shí)候,會(huì)重新執(zhí)行滾動(dòng)函數(shù),重新定位滾動(dòng)位置,比如到元素被修改時(shí),會(huì)重新執(zhí)行滾動(dòng)函數(shù)。
(2)本地的DEMO
官網(wǎng)給出了本地運(yùn)行,實(shí)現(xiàn)滾動(dòng)加載的例子:
HTML代碼:
<div ng-app='myApp' ng-controller='DemoController'>
<div infinite-scroll='loadMore()' infinite-scroll-distance='2'>
<img ng-repeat='image in images' ng-src='http://placehold.it/225x250&text={{image}}'>
</div>
</div>
JS代碼:
var myApp = angular.module('myApp', ['infinite-scroll']);
myApp.controller('DemoController', function($scope) {
$scope.images = [1, 2, 3, 4, 5, 6, 7, 8];
$scope.loadMore = function() {
var last = $scope.images[$scope.images.length - 1];
for(var i = 1; i <= 8; i++) {
$scope.images.push(last + i);
}
};
});
更多關(guān)于AngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《AngularJS入門與進(jìn)階教程》及《AngularJS MVC架構(gòu)總結(jié)》
希望本文所述對(duì)大家AngularJS程序設(shè)計(jì)有所幫助。
相關(guān)文章
解決angular2 獲取到的數(shù)據(jù)無(wú)法實(shí)時(shí)更新的問(wèn)題
今天小編就為大家分享一篇解決angular2 獲取到的數(shù)據(jù)無(wú)法實(shí)時(shí)更新的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
AngularJS 過(guò)濾器的簡(jiǎn)單實(shí)例
本文主要介紹AngularJS 過(guò)濾器,這里提供詳細(xì)了AngularJS 過(guò)濾器詳細(xì)資料,并提供簡(jiǎn)單實(shí)例,有需要的朋友可以參考下2016-07-07
Angular4.0中引入laydate.js日期插件的方法教程
在AngularJs中我們會(huì)不可避免的使用第三方庫(kù),例如jquery插件庫(kù)。下面這篇文章主要給大家介紹了關(guān)于Angular4.0中引入laydate.js日期插件的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
Angular2中Bootstrap界面庫(kù)ng-bootstrap詳解
不知道大家有沒(méi)有留意,最近angular-ui團(tuán)隊(duì)終于正式發(fā)布了基于 Angular2的Bootstrap界面庫(kù)ng-bootstrap ,之前工作中一直在用 AngularJS 1.x 的UI Bootstrap , 因此對(duì)這個(gè)ng-bootstrap 也是很感興趣,所以第一時(shí)間進(jìn)行試用。這篇文章就給大家詳細(xì)介紹下ng-bootstrap。2016-10-10
angular或者js怎么確定選中ul中的哪幾個(gè)li
下面小編就為大家?guī)?lái)一篇angular或者js怎么確定選中ul中的哪幾個(gè)li。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
Angular 2父子組件之間共享服務(wù)通信的實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于Angular 2父子組件之間共享服務(wù)通信的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-07-07
Angular 4.x中表單Reactive Forms詳解
這篇文章主要介紹了Angular 4.x中表單Reactive Forms的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-04-04
Angular中AuthGuard路由守衛(wèi)的創(chuàng)建使用
這篇文章主要為大家介紹了Angular中AuthGuard路由守衛(wèi)的創(chuàng)建使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
angularjs實(shí)現(xiàn)分頁(yè)和搜索功能
這篇文章主要介紹了angularjs實(shí)現(xiàn)分頁(yè)和搜索功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01

