저는 Angular를 처음 접했고 무한 스크롤을 구현하려고합니다. 저는 두 가지 문제에 직면하고 있습니다. 나는 두 가지 문제를 해결할 방법이 확실하지 않습니다. 먼저 ngInfiniteScroll을 사용하여 앱 목록을 표시하고 싶습니다. 이것은 잘 작동하고 있습니다. 나는 예제 코드를 사용하여 실행했다.AngularJS workflow 문제 - list -> detail -> list
이제 앱을 클릭하여 세부 정보를 확인하고 싶습니다. 보기가 표시되어 있지만 한 컨트롤러에서 다른 컨트롤러로 앱 목록을 공유하는 방법을 모르겠습니다. 그것이 내가 목록으로 세부 사항을 목록에서 갈 때마다 처음부터 다시 결과로 appcatalog에 새로운 AppCatalog()를 인스턴스화 그래서 우선
//// AppCatalog constructor function to encapsulate HTTP and pagination logic
applicationCatalog.factory('AppCatalog', function($http) {
var AppCatalog = function() {
this.apps = [];
this.selectedApps = [];
this.busy = false;
this.after = '';
this.page = 1;
this.maxresults = 50;
};
AppCatalog.prototype.nextPage = function() {
if (this.busy) return;
this.busy = true;
var restUrl = "/web-portal/apps/catalog/search?page="+this.page+"&maxresults="+this.maxresults;
$http({method: 'GET', url: restUrl}).success(function(data) {
var apps = data;
for (var i = 0; i < apps.length; i++) {
this.apps.push(apps[i]);
}
this.after = this.apps[this.apps.length - 1].id;
this.page += 1;
this.busy = false;
}.bind(this));
};
return AppCatalog;
});
applicationCatalog.controller('appCatalogController', ['$scope', 'AppCatalog',
function(scope, AppCatalog) {
scope.appcatalog = new AppCatalog();
}
]);
는 느낌이 좋지 않습니다. 이 코드는 작동하며 무한 스크롤은 앱의 다음 배치를 올바르게 생성합니다. 앱 목록을 내 모퉁이 페이지의 수명주기 동안 저장하면 안되며 페이지를 새로 고침하거나 멀리 이동할 때만 새로 고쳐야합니다. 어떻게이 코드를 변경하면됩니까?
두 번째 도전 과제는 앱 목록에 이미 다운로드 한 앱의 세부 정보를보고 싶을 때 액세스하는 방법을 모르겠다는 것입니다.
appDetailsController에서 ID를 기반으로 목록에서 앱을 가져 오려고합니다. 하지만 두 번째 컨트롤러에서 앱 목록에 액세스하는 방법을 모르겠습니다. 그것은 이미 기억 속에 있어야합니다.
마지막으로이 세부 컨트롤러에서 목록을 반환하면 (내 첫 번째 질문과 관련 있음) 다시 시작됩니다. 내 페이징 정보, 스크롤 목록의 현재 위치 등이 모두 손실됩니다. 이 워크 플로는 공통적 인 워크 플로 여야하지만 여기에서 어디로 가야할지 모르겠습니다.
미리 도움을 주셔서 감사합니다.
자레드