【问题标题】:In angularjs how do you catch an error for ngStorage when localStorage is full?在 angularjs 中,当 localStorage 已满时,如何捕获 ngStorage 的错误?
【发布时间】:2015-08-27 19:58:15
【问题描述】:

我在 AngularJS 中使用 ngStorage 将几个项目保存到 localStorage,但如果用户的 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');  
}

【问题讨论】:

    标签: javascript html angularjs local-storage ng-storage


    【解决方案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 - 演示

    另请参阅this answer 以了解异常驱动的方法。引用的答案将分享您如何强制可能捕获的异常。如果您运行不足,上面的代码可能允许您执行/绕过某些逻辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 2019-08-13
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多