使用 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"));