0

항목 목록이있어 각 항목은 확장 가능합니다. 나는 이것을 위해 uib-collapse를 사용하고있다. 데이터를받을 때마다 배열의 각 객체에 isCollapsed 속성을 추가합니다. 그런 다음 ng-repeat를 사용하여 UI 목록에 바인딩합니다. 하지만 매분마다 데이터를 새로 고침해야합니다. 그리고 여기에 문제가 있습니다 : 배열이 업데이트되어 확장 된 모든 항목이 닫힙니다. 목록 상태를 저장하고 데이터 새로 고침시 항목을 확장해야합니다. 누구든지 나를 도울 수 있습니까? 페이지를 새로 고칠 일단 당신이 $localstorage에서 값을 얻을 것이다 페이지 $scope.list를 새로 고치면데이터 새로 고침시 목록 조건 저장 AngularJS

+0

당신이 완전한 배열을 업데이트하고 있습니다. 더 설명하거나 바이올린을 만들 수 있습니까? –

+0

@SrujanReddy 예. 매분마다 전체 배열을 업데이트합니다. 그리고 각 항목에 isCollapsed 필드를 다시 추가하십시오. –

답변

0

사용 $의 로컬 스토리지

.controller("MyCtrl",function($scope,$localStorage){ 

    if($localStorage.list != null) 
     $scope.list = $localStorage.list; 

    $scope.add = function(obj){ 
     $scope.list.push(obj); 
     $localStorage.list = $scope.list; 
    } 

}); 

데이터를 $localstorage PARAM에 데이터를 할당하고 다시 설정합니다.

+0

페이지가 새로 고쳐지지 않습니다. 페이지의 목록을 새로 고치고 페이지의 다른 부분은 그대로 유지합니다. –

0

목록 항목을 가리키는 부울 플래그 맵을 사용하고이 플래그를 uib-collapse 값으로 사용하십시오.

JS :

$scope.reload = function() { 
    $http.get('list.json').then(function (data) { 
    $scope.list = data && data.data || []; 
    }); 
}; 

$scope.collapsedFlags = {}; 

$scope.reload(); 

HTML :

<div class="well well-lg" ng-repeat="item in list track by item.id"> 
    <button class="btn btn-default" 
      ng-click="collapsedFlags[item.id] = !collapsedFlags[item.id]"> 
    {{ item.isCollapsed ? '+' : '-' }} 
    </button> 
    <div uib-collapse="collapsedFlags[item.id]" ng-bind="item.value"></div> 
</div> 

PLUNKER : https://plnkr.co/edit/87vVb8Jjyz6yFGAjiHBK?p=preview

관련 문제