假设我有一个导航栏,在登录后显示个人资料图片。 我正在使用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(由于他们还没有登录,因此无法使用),因此除非登录,否则微调器永远不会停止。 如何纠正这个?
答案 0 :(得分:0)
使用简单的条件。如果密钥不存在,getItem()
将返回null
var accessData = localStorage.getItem('profile');
if(accessData ){
lgin.profile = angular.fromJson(accessData);
}