要實現這個功能,可以通過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系列:
如何在 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 的下載地址:請點這裡