2016-10-03 8 views
0

ログイン後にプロフィール画像を表示するnavbarがあるとします。 私はlocalstorageでユーザープロファイルを設定するAuth0のロックを使用しています。 img-srcはlocalStorageから来ました。ブラウザーの読み込みを停止する方法localStorageアイテムがAngularJSで利用できないとき

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); 

ユーザーがホームページを入力すると、ブラウザは、彼らが「didnのため、利用できない(lgin.profile.pictureのために見つけておきますまだログインしていないので)、ログインしなければスピナーは止まらない。 これを修正するには?

+0

これは動作しません。 'if(angular.isDefined(accessData)){//あなたのコード}' – Matheno

答えて

0

単純な条件文を使用します。キーが存在しない場合、getItem()はnullを返します

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

私はすでに試みました。それはうまくいくはずです、悲しいことに、それはしませんでした。 –

+1

注意ブラウザがイメージに対して悪い要求をするのを避けるには、常に 'ng-src'を使うべきです。あなたが話しているスピナーが本当にわからない。 – charlietfl

+0

ng-src問題を再現したデモを作成して、問題を本当に修正してください。どうもありがとうございます。 –

関連する問題