我正在使用類似this的代碼在AngularJS中創建無限滾動效果。我試圖通過將可滾動容器的內容(在這種情況下爲ul
)重構爲一個單獨的html文件來重構一些代碼,然後使用ng-view來加載內容。當在ng-view上滾動時無盡滾動在AngularJS中不起作用
完成此操作後,scope.$apply(attr.whenScrolled);
沒有任何影響。 loadMore()
方法不再被調用。
在將ul-content移動到一個單獨的文件並動態加載之後,我是否對範圍進行了更改?
更新: 以下是代碼:
App.directive('whenScrolled', function() {
return function(scope, element, attr) {
var raw = element[0];
// binding on element doesn't work so this is a temp fix
$(document).bind('scroll', function() {
var scrollPercentage = (($(window).scrollTop() + $(window).height())/$(document).height()) * 100;
if(scrollPercentage > 75 && !scope.in_progress && !scope.is_reached_end)
{
console.log('test')
scope.$apply(attr.whenScrolled);
}
});
};
});
App.config(['$routeProvider', function($routeProvider){
$routeProvider.when('/', {
templateUrl: 'views/offers.html',
controller: 'OffersCntl'
});
}]);
的觀點:
<div class="tileContainer" ng-controller="OffersCntl">
<h2>Something very important :)</h2>
<div id="tiles" class="tiles" when-scrolled="loadMore()">
<div ng-view></div>
</div>
</div>
我有一個相當脂肪控制器,這是我不想polute與職。它基本上有一個scope.loadMore方法。
請張貼代碼調試 – rajkamal 2013-05-08 22:36:23
現在完成了。 – Dofs 2013-05-09 06:42:43