2014-12-19 7 views
0

지금이 코드를 수정하고 있습니다. 사용자가 내 애플리케이션으로 돌아갈 때 위젯의 위치가 그대로 유지되도록 localstorage를 사용하여 내 대시 보드의 상태를 저장하고 싶습니다. 저장되지만 브라우저가 새로 고침 될 때마다 현재 scope.dashboards 상태로 돌아가며 수정 방법을 알지 못합니다. 로컬 저장소에 저장브라우저를 새로 고침 할 때 localStorage가 플러시

//Used to save the dashboard to BOTH local storage and PENN database 
//Local storage will attempt to be loaded first. However, if local storage is not there 
//then we will load the dashboard from the database 
$scope.serialize = function() { 

    $scope.dashboardJSON = angular.toJson($scope.standardItems); 

    console.log($scope.dashboardJSON); 

    localStorageService.set("DashboardInfo", $scope.dashboardJSON); 

    //Send HTTP request 'POST' to saveDashboard function in Rails controller 
    $http({ 
     method: 'POST', 
     url: 'saveDashboard', 
     data: {'dashboardInfo': $scope.dashboardJSON }, 
     headers: {'Content-Type': 'application/json' } 
     }).success(function(data, status, headers, config) 
     { 
      //Let user know that their dashboard was saved with this success flash 
      $scope.successSavingDashboardToDBAlert(); 
     }).error(function(data, status, headers, config) 
     { 
      //Let the user know the dashboard could not be saved with this error flash 
      $scope.errorSavingDashboardToDBAlert(); 
     }); 

}; 

: I는 I 사용자가이 기능을 호출하는 버튼 클릭이 로컬 스토리지

var modInProgr = false; 
    $scope.$watch("dashboards['1'].widgets", function(newVal, oldVal) { 
     if (!modInProgr) { 
      modInProgr = true; 
      // modify dashboards 
      $scope.$storage = $localStorage; 
      $localStorage.sample = $scope.dashboards[1]; 
      console.log($localStorage.sample); 
     } 
     $timeout(function() { 
      modInProgr = false; 
     }, 0); 

     $scope.dashboard = $localStorage.sample; 
    }, true); 

    // init dashboard 

    $scope.dashboard = $localStorage.sample; 
+0

지역 페이지가 (브라우저에서 파일에 액세스 같이) 또는 서버에? – atmd

+0

관련이있을 수 있습니다. http://stackoverflow.com/questions/3738047/localstorage-doesnt-retrieve-values-after-page-refresh – atmd

답변

0

ngStorage위한 모듈을 사용 하였다. 또한 로컬 스토리지가 만료되거나 삭제되도록 데이터베이스에 저장합니다.

는 gridster 내가 이렇게로드 할 때 :

var dashboardInfo = localStorageService.get("DashboardInfo"); 

if (dashboardInfo == null) 
{ 
      //Load from the database 
} 
else 
{ 
      //console.log("Loading from Local Storage"); 

       //Parse the local storage JSON data with angular 
      var parsedDashboard = angular.fromJson(dashboardInfo); 

       //Loop through the parsed data to push it to the array that is used for gridster. 
       //Usually this is called items but in my case I called it standardItems 

      for(var i = 0; i < parsedDashboard.length; i++) 
      { 
       //console.log(parsedDashboard[i]); 
       $scope.standardItems.push(parsedDashboard[i]); 
      } 
        //$scope.successAlert(); 
}