AngularJS基于ngInfiniteScroll實現(xiàn)下拉滾動加載的方法
本文實例講述了AngularJS基于ngInfiniteScroll實現(xiàn)下拉滾動加載的方法。分享給大家供大家參考,具體如下:
1.分頁加載數(shù)據(jù)的基礎(chǔ)上,如何通過滾動加載,實現(xiàn)分頁加載數(shù)據(jù)的效果,github上,針對AngularJS,有一款不錯的插件,地址為:https://github.com/sroze/ngInfiniteScroll
2.下面來看官方給出的文檔
(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>
解釋各個屬性(指令的含義)
①infinite-scroll - {expression} 當(dāng)滾動到瀏覽器底部時,所執(zhí)行的函數(shù)或者表達式,通常是函數(shù)形式。
②infinite-scroll-distance (optional) - {number} 表達式或者數(shù)字,如果是一個數(shù)字,表示滾動條距離瀏覽器底部多少遠時,執(zhí)行①中里面的函數(shù)。如果將這個值設(shè)置為2,對于1000px高度的元素,當(dāng)元素底部距離瀏覽器窗口底部距離在2000px像素以內(nèi),沒滾動一次,都會執(zhí)行一次①里面的函數(shù)。(這個值默認是0,即當(dāng)元素滾動到元素底部達到瀏覽器窗口(滾動區(qū)域)底部時,執(zhí)行滾動區(qū)域里面的函數(shù)。
③infinite-scroll-disabled (optional) - {boolean} 一個布爾值,用于標(biāo)志滾動表達函數(shù)能否執(zhí)行,如果值為true,表示滾動函數(shù)不能被執(zhí)行。這個屬性,通常用于暫停或者停止?jié)L動。比如當(dāng)我們在AJAX請求數(shù)據(jù)的過程中,移動了滾動條,這時就需要設(shè)置這個屬性,禁止?jié)L動函數(shù)的執(zhí)行。
④infinite-scroll-immediate-check (optional) - {boolean} 一個布爾值,用于標(biāo)志指令在初始化頁面時,是否為初始執(zhí)行一次(即使這種情況下,沒有初始滾動),默認值為true,表示初始會執(zhí)行一次這①里面的函數(shù)。
⑤infinite-scroll-listen-for-event (optional) - {string} 一個事件,當(dāng)接受到這個事件時候,會重新執(zhí)行滾動函數(shù),重新定位滾動位置,比如到元素被修改時,會重新執(zhí)行滾動函數(shù)。
(2)本地的DEMO
官網(wǎng)給出了本地運行,實現(xiàn)滾動加載的例子:
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入門與進階教程》及《AngularJS MVC架構(gòu)總結(jié)》
希望本文所述對大家AngularJS程序設(shè)計有所幫助。
相關(guān)文章
解決angular2 獲取到的數(shù)據(jù)無法實時更新的問題
今天小編就為大家分享一篇解決angular2 獲取到的數(shù)據(jù)無法實時更新的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
Angular4.0中引入laydate.js日期插件的方法教程
在AngularJs中我們會不可避免的使用第三方庫,例如jquery插件庫。下面這篇文章主要給大家介紹了關(guān)于Angular4.0中引入laydate.js日期插件的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
Angular2中Bootstrap界面庫ng-bootstrap詳解
不知道大家有沒有留意,最近angular-ui團隊終于正式發(fā)布了基于 Angular2的Bootstrap界面庫ng-bootstrap ,之前工作中一直在用 AngularJS 1.x 的UI Bootstrap , 因此對這個ng-bootstrap 也是很感興趣,所以第一時間進行試用。這篇文章就給大家詳細介紹下ng-bootstrap。2016-10-10
Angular 2父子組件之間共享服務(wù)通信的實現(xiàn)
這篇文章主要給大家介紹了關(guān)于Angular 2父子組件之間共享服務(wù)通信的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-07-07
Angular 4.x中表單Reactive Forms詳解
這篇文章主要介紹了Angular 4.x中表單Reactive Forms的相關(guān)資料,文中通過示例代碼介紹的非常詳細,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-04-04
Angular中AuthGuard路由守衛(wèi)的創(chuàng)建使用
這篇文章主要為大家介紹了Angular中AuthGuard路由守衛(wèi)的創(chuàng)建使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07

