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