使用 ngStorage 共享数据

首先,在 index.html 中包含 ngStorage 源。

注入 ngStorage src 的一个例子是:

<head>
    <title>Angular JS ngStorage</title>
    <script src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
    <script src="https://rawgithub.com/gsklee/ngStorage/master/ngStorage.js"></script>
</head>

ngStorage 给你 2 个存储即:$localStorage$sessionStorage。你需要要求 ngStorage 和 Inject 服务。

假设如果 ng-app="myApp",那么你将注入 ngStorage 如下:

var app = angular.module('myApp', ['ngStorage']);
        app.controller('controllerOne', function($localStorage,$sessionStorage) {
        // an object to share
        var sampleObject = {
            name: 'angularjs',
            value: 1
        };
       $localStorage.valueToShare = sampleObject;
       $sessionStorage.valueToShare = sampleObject;
    })  
.controller('controllerTwo', function($localStorage,$sessionStorage) {
    console.log('localStorage: '+ $localStorage +'sessionStorage: '+$sessionStorage);
})

只要你在控制器中注入这些服务,$localStorage$sessionStorage 就可以通过任何控制器进行全局访问。

你也可以使用 HTML5localStoragesessionStorage。但是,使用 HTML5 localStorage 会要求你在使用或保存对象之前对其进行序列化和反序列化。

例如:

var myObj = {
    firstname: "Nic",
    lastname: "Raboy",
    website: "https://www.google.com"
} 
//if you wanted to save into localStorage, serialize it  
window.localStorage.set("saved", JSON.stringify(myObj));  

//unserialize to get object  
var myObj = JSON.parse(window.localStorage.get("saved"));