gpt4 book ai didi

angularjs - 在 ng-view 上滚动时无限滚动在 AngularJS 中不起作用

转载 作者:行者123 更新时间:2023-12-04 07:08:25 25 4
gpt4 key购买 nike

我正在使用类似 this 的代码在 AngularJS 中创建无限滚动效果。我试图重构一些代码,通过将可滚动容器的内容(在本例中为 ul )移动到单独的 html 文件,然后使用 ng-view 加载内容。

完成后 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>

我有一个相当胖的 Controller ,我不想用它来污染帖子。它基本上有一个 scope.loadMore 方法。

最佳答案

使用 ng-include而不是 ng-view .

http://jsfiddle.net/pvtpenguin/U7Bz9/540/

例如,在您看来:

 <div class="tileContainer" ng-controller="OffersCntl">
<h2>Something very important :)</h2>
<div id="tiles" class="tiles" when-scrolled="loadMore()">
<div ng-include src="'offer.html'"></div>
</div>
</div>

关于angularjs - 在 ng-view 上滚动时无限滚动在 AngularJS 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16449919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com