В angularjs, как вы ловите ошибку для ngStorage, когда localStorage заполнен?

Я сохраняю несколько предметов в localStorage с помощью ngStorage в AngularJS, но если пользователь localStorage заполнен, как я могу поймать эту ошибку и позволить JavaScript продолжать работать?

try {  
    $scope.$storage.gridObject = $scope.gridConfig.data;  
    $scope.$storage.dataStored=true; 
}  
catch(err) {  
    //failed to save to local storage,  try clearing localStorage for IAP and throw error  
    $scope.$storage.dataStored=false;  
    $scope.$storage.$reset({    
        dataStored: false,
        gridObject: {}  
    })  
    console.log('error occured message');  
}

1 ответ

Решение

Возможно, это не относится к AngularJS, вы сможете получить подробную информацию для вашего localStorage со следующим.

var allocated = 5; // default 5MB allocation
var total = 0;
for(var x in localStorage) {  
    var amount = (localStorage[x].length * 2) / 1024 / 1024;  
    total += amount;  
}
var remaining = allocated - total;
console.log( 'Used: ' + total + ' MB');
console.log( 'Remaining: ' + remaining + ' MB');

JSFiddle Link - демо

Посмотрите этот ответ также для подхода, управляемого исключениями. Приведенный ответ расскажет, как вы можете форсировать исключение, за которое вы, вероятно, поймаете Приведенный выше код может позволить вам выполнить / обойти определенную логику, если у вас заканчивается.

Другие вопросы по тегам