2016-04-24 8 views
2

ich in meinem HTML haben:Angular - ng-hide mit localstorage funktioniert nicht

<div ng-hide="token"> 
    Test 
</div> 

Und in meinem Controller:

$scope.token = localStorage.key; 

Aber es ist immer false zurück - es doesn (?) arbeite nicht.

Und wenn ich versuche, es so zu tun:

<div ng-hide="token()"> 
    Test 
</div> 

Und Controller:

$scope.token = function(){ 
    return localStorage.key; 
} 

es; s funktioniert auch nicht.

warum?

Und wie kann ich es tun?

danke

+0

Versuchen Injektion '$ window' zu Ihrem Controller und dann erhalten Sie das Token mit $ Scope .token = $ window.localStorage.key; ' –

Antwort

4

Sie verwenden nicht localStorage richtig. Die richtige Methode ist:

$scope.token = localStorage.getItem(key); 

In ähnlicher Weise würden Sie setItem setzen etwas in und removeItem es später zu löschen.

komplette Dokumentation auf local: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

+1

Ich kann den Wert eines Schlüssels bekommen, wenn ich' localStorage.key = 111; alert (localStorage.key); ' –

+1

@AlonEitan Sie richtig mache. aber aus irgendeinem Grund funktioniert es nur, wenn ich es mit 'getItem()' mache. Ich habe hier ein Beispiel gemacht: https://jsfiddle.net/morwin10/r0ue8qwp/ –

0

localstorage ist ein Schlüssel/Wert-Array.

können Sie verwenden:

window.localStorage.getItem('key'); 
    window.localStorage.setItem('key', 'value'); 
    window.localStorage.removeItem('key'); 
    window.localStorage.length; 
    window.localStorage.key(n); 

versuchen, dies zu verwenden, wenn Sie in der Konsole sehen müssen, welchen Wert Sie benötigen:

for (var key in localStorage){ 
     console.log(key) 
    } 

Wenn Sie versuchen, einen Standardwert für Ihr Token zuweisen und es funktioniert immer noch nicht, es könnte ein Problem sein.

See:

http://jsfiddle.net/hgjrmoru/145/