使用 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
就可以通過任何控制器進行全域性訪問。
你也可以使用 HTML5
的 localStorage
和 sessionStorage
。但是,使用 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"));