ng-repeat
과 함께 무한 스크롤 기술을 사용하고 있습니다. 지시어가 항목을 DOM에 추가하는 것을 완료 할 때까지 프리 로더를 표시하려고합니다. 그것을 달성하는 가장 간단한 방법은 무엇입니까?AngularJS - ngRepeat 용 프리 로더
0
A
답변
1
시험해보기. live DEMO 참조 용으로 설정되었습니다.
무한 스크롤 구현에 따라 다릅니다. 그리고 가장 좋은 대답은 plunker 또는 jsbin을 설정해야합니다.
하지만 로더를 설정하고 ng-if
지시문을 사용하면 항목 컨테이너가 비어있는 동안에 만 표시 할 수 있습니까?
우리가 여기
<div id="data-container" when-scrolled="loadMore()">
<img ng-if="!items.length" ng-src="http://placehold.it/100x395&text=Loading">
<div class="item" ng-repeat="item in items">{{item.id}}</div>
<img ng-if="items.length && busy" ng-src="http://placehold.it/85x50&text=Loading">
</div>
when-scrolled
같은 템플릿을 상상하는 것은 바로 스크롤 위치를 모니터링하고 더 많은 항목을로드 할 때 때 제공된 처리기를 호출 우리의 무한 스크롤 지시자입니다.
app.directive('whenScrolled', function() {
return function(scope, element, attr) {
var containerNode = element[0];
element.bind('scroll', function() {
if (containerNode.scrollTop + containerNode.offsetHeight >= containerNode.scrollHeight) {
scope.$apply(attr.whenScrolled);
}
});
};
});
처리기가 내용 영역의 맨 아래에 도달하면 처리기가 호출됩니다.
$scope.items = [];
$scope.busy = false;
$scope.loadMore = function() {
if (true === $scope.busy) {
return;
}
$scope.busy = true;
$timeout(function() {
var currentLength = $scope.items.length;
for (var i = currentLength; i < currentLength + 10; i++) {
$scope.items.push({id: i + 1});
}
$scope.busy = false;
}, 350); // Imitating the long remote request.
};
우리는 먼저 $scope.items
를 초기화하고 그것의 길이가 0 인 동안 "!items.length"
에 해당하는 동안이 표시 될 때 로딩 이미지는 템플릿에 표시됩니다 : 컨트롤러의
loadMore()
방법은 다음과 같이 정의 할 수 있습니다. 첫 번째 항목이 콜렉션에 추가되면 프리 로더가 숨겨집니다.
그러면 로컬 로딩 이미지가 표시되며 회 전자 또는 원하는대로 바꿀 수 있습니다. 그러면 $scope.busy
var이 true
으로 설정되고 false
일 때 숨겨집니다. 동기화 요청의 시작과 끝에서 $scope.busy
값을 변경합니다. 타임 아웃은 간단한 비동기 요청 데모에 사용됩니다.
관련 문제
- 1. ajax 템플릿 용 앵귤러 및 프리 로더
- 2. Canvas - 프리 로더 용 서클 원형 모양
- 3. 외부 swf 파일 용 AS3 프리 로더
- 4. 특정 div 콘텐츠 용 JavaScript 프리 로더
- 5. 플래시 외부 프리 로더 또는 셀프 프리 로더
- 6. 동적 내용의 프리 로더
- 7. 폰갭/코르도바 프리 로더
- 8. PHP가로드되는 동안 프리 로더
- 9. 프리 로더 문제
- 10. Materialize 프리 로더
- 11. 이미지 프리 로더
- 12. html 프리 로더
- 13. AS3 프리 로더 타이밍
- 14. 프리 로더 온라인
- 15. 플래시 프리 로더
- 16. 이미지의 두 프리 로더
- 17. 플래시 AS3 프리 로더
- 18. 스프라이트 애니메이션이있는 프리 로더
- 19. Flex DownloadProgressBar 프리 로더 오버라이드
- 20. AngularJS curstom 지시어 및 ngRepeat
- 21. AngularJS : ngRepeat 내부의 행당 컨트롤러
- 22. html5 비디오 프리 로더 문제
- 23. jQuery를 AJAX 프리 로더 문제
- 24. @ font-face kit 프리 로더
- 25. 탭용 Ajax 프리 로더 이미지
- 26. Jquery 프리 로더 및 wow.js
- 27. 페이지 내용 상단의 프리 로더
- 28. CSS 배경 이미지 프리 로더
- 29. 플래시가없는 플렉스 프리 로더 CS
- 30. 프리 로더 크기 가이드 라인