歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> AngularJS 實現頁面滾動到底自動加載數據的功能

AngularJS 實現頁面滾動到底自動加載數據的功能

日期:2017/3/1 9:34:18   编辑:Linux編程

要實現這個功能,可以通過https://github.com/sroze/ngInfiniteScroll這個第三方控件來實現。步驟如下:

1. 下載ng-infinite-scroll.js程序http://sroze.github.io/ngInfiniteScroll/ 目前版本是1.0.0

2. 如果你是用的jQuery2.0以上版本,還需要修改ng-infinite-scroll.js程序,將所有的將所有的$window.xxx改為$(window).xxx, elem.xxx改為$(elem).xxx

3. 在HTML中引入script

<script type='text/javascript' src='path/to/jquery.min.js'></script>
<script type='text/javascript' src='path/to/angular.min.js'></script>
<script type='text/javascript' src='path/to/ng-infinite-scroll.min.js'></script>

4. HTML示例代碼如下:

 1 <div ng-controller='PostListController'>
 2     <div infinite-scroll='demo.nextPage()' infinite-scroll-disabled='demo.busy' infinite-scroll-distance='1'>
 3         <div ng-repeat='item in demo.items'>
 4             <p>
 5                 <input type="hidden" value="{{item.PostId}}" />
 6                 <label>{{item.WriterName}}</label>
 7                 <label>{{item.WriterMail}}</label>
 8                 <label>{{item.WreckerName}}</label>
 9                 <label>{{item.StartDate}}</label>
10                 <label>{{item.Location}}</label>
11                 <label>{{item.Story}}</label>
12             </p>
13         </div>
14         <div ng-show='demo.busy'>Loading data...</div>
15     </div>
16 </div>

5. PostListController.js代碼如下:

 1 var ftitAppModule = angular.module('ftitApp', ['infinite-scroll']);
 2 
 3 ftitAppModule.controller('PostListController', 
 4     function ($scope, Demo) {
 5         $scope.demo = new Demo();
 6 });
 7 
 8 // 創建後台數據交互工廠
 9 ftitAppModule.factory('Demo', function ($http) {
10     var Demo = function () {
11         this.items = [];
12         this.busy = false;
13         this.after = '';
14         this.page = 0;
15     };
16     
17     Demo.prototype.nextPage = function () {
18         if (this.busy) return;
19         this.busy = true;
20         
21         var url = "http://192.168.3.95:7002/api/post/nextpage?id=" + this.page + "&callback=JSON_CALLBACK";
22         $http.jsonp(url).success(function (data) {
23             var items = data;
24             for (var i = 0; i < items.length; i++) {
25                 this.items.push(items[i]);
26             }
27             this.after = "t3_" + this.items[this.items.length - 1].id;
28             this.busy = false;
29             this.page += 1;
30         }.bind(this));
31     };
32 
33     return Demo;
34 });

這樣就實��了頁面拖動到底後,從服務器自動加載數據的功能。

AngularJS權威教程 清晰PDF版 http://www.linuxidc.com/Linux/2015-01/111429.htm

希望你喜歡,並分享我的工作~帶你走近AngularJS系列

  1. 帶你走近AngularJS - 基本功能介紹 http://www.linuxidc.com/Linux/2014-05/102140.htm
  2. 帶你走近AngularJS - 體驗指令實例 http://www.linuxidc.com/Linux/2014-05/102141.htm
  3. 帶你走近AngularJS - 創建自定義指令 http://www.linuxidc.com/Linux/2014-05/102142.htm

如何在 AngularJS 中對控制器進行單元測試 http://www.linuxidc.com/Linux/2013-12/94166.htm

在 AngularJS 應用中通過 JSON 文件來設置狀態 http://www.linuxidc.com/Linux/2014-07/104083.htm

AngularJS 之 Factory vs Service vs Provider http://www.linuxidc.com/Linux/2014-05/101475.htm

AngularJS —— 使用 ngResource、RESTful APIs 和 Spring MVC 框架提交數據 http://www.linuxidc.com/Linux/2014-07/104402.htm

AngularJS 的詳細介紹:請點這裡
AngularJS 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved