如何在AngularJS中无法使用浏览器加载localStorage项目

时间:2016-10-03 13:54:39

标签: angularjs local-storage auth0

假设我有一个导航栏,在登录后显示个人资料图片。 我正在使用Auth0的锁定,它在localStorage中设置用户配置文件。 img-src来自localStorage。

NavbarView.html

 <li ng-if="!lgin.isAuthenticated"><a ng-click="lgin.authService.login()">Sign in</a></li>
 <li ng-if="lgin.isAuthenticated" class="dropdown">
     <a href="" class="dropdown-toggle" data-toggle="dropdown">
     <strong>{{lgin.profile.name}}</strong>
     <img src="{{lgin.profile.picture}}" alt="{{lgin.profile.name}}">
                <span class="caret"></span></a>

loginController.js

 var lgin = this;
 lgin.isAuthenticated = $rootScope.isAuthenticated;
 var accessData = localStorage.getItem('profile');
 lgin.profile = angular.fromJson(accessData);

当用户进入主页时,浏览器会继续查找lgin.profile.picture(由于他们还没有登录,因此无法使用),因此除非登录,否则微调器永远不会停止。 如何纠正这个?

1 个答案:

答案 0 :(得分:0)

使用简单的条件。如果密钥不存在,getItem()将返回null

var accessData = localStorage.getItem('profile');
if(accessData ){
   lgin.profile = angular.fromJson(accessData);
}