關(guān)于AngularJs數(shù)據(jù)的本地存儲(chǔ)詳解
第一、創(chuàng)建一個(gè)factory來儲(chǔ)存和調(diào)取你的數(shù)據(jù)(你可以單獨(dú)創(chuàng)建一個(gè)js文件,按照語義命名如:dataService.js。然后在你的主頁面引入這個(gè)JS文件)
<!--引入到你的主頁面里面-->
<script src="dataService.js"></script>
創(chuàng)建一個(gè)factory
'use strict';
angular.module('myApp')
.factory('datadService',['$window',function($window) {
return{
//存儲(chǔ)單個(gè)屬性
set :function(key,value){
$window.localStorage[key]=value;
},
//讀取單個(gè)屬性
get:function(key,defaultValue){
return $window.localStorage[key] || defaultValue;
},
//存儲(chǔ)對(duì)象,以JSON格式存儲(chǔ)
setObject:function(key,value){
$window.localStorage[key]=JSON.stringify(value);
},
//讀取對(duì)象
getObject: function (key) {
return JSON.parse($window.localStorage[key] || '{}');
}
}
}]);
第二、將你創(chuàng)建的這個(gè)方法模塊【datadService】注入到你要控制器中如下的控制器為【productCtrl】,下面我們創(chuàng)建一個(gè)set.js文件,里面代碼如下:
'use strict';
angular.module('myApp').controller(
'productCtrl',
[ '$scope','datadService',
function($scope, datadService) {
$scope.appiAppType = 1;
//這里面$scope.appiAppType的賦值同樣可以通過$http.post或者$http.get
//等方法返回的參數(shù)去賦值,例子如下:
//$http.post('這里是你所要訪問的接口【URL】',這里是你想要上傳的參數(shù)).success(function(data){
// $scope.appiAppType = data;
//});
datadService.setObject("lodinData", $scope.appiAppType);// 將你獲取來的數(shù)據(jù)存儲(chǔ)到你之前創(chuàng)建的【datadService】中,這里面的【lodinData】是KEY(個(gè)人理解就是你把數(shù)據(jù)存到大箱子里面這個(gè)箱子就是【datadService】,為了方便在這個(gè)箱子里面更好的尋找你想要的數(shù)據(jù)就給他一個(gè)小標(biāo)簽,那就是【lodinData】)
} ]);
第三、關(guān)于存儲(chǔ)好的數(shù)據(jù)如何在不同的控制其中獲取到,下面我們創(chuàng)建一個(gè)get.js,里面代碼如下:
'use strict';
//首先大家要把之前創(chuàng)建好的模塊也就是那個(gè)裝數(shù)據(jù)的箱子【datadService】放到這個(gè)控制器中(也就是模塊注入)
//其次大家通過之前咱們?cè)O(shè)定的標(biāo)簽【lodinData】,用【getObject('key')】方法取到你想要的數(shù)據(jù);
//具體實(shí)現(xiàn)就一行代碼:datadService.getObject('lodinData');「注:把箱子拿出來(datadService)用(getObject)去拿你的這個(gè)(lodinData)標(biāo)簽下的數(shù)據(jù)」
angular.module('myApp').controller(
'completeCtrl',
[ '$scope', 'datadService',
function($scope, datadService) {
//我們這里取到來上面已經(jīng)存好的數(shù)據(jù):【datadService.getObject('lodinData');】并且把這個(gè)數(shù)據(jù)賦值給了【$scope.LoginList】
$scope.LoginList = datadService.getObject('lodinData');
//這里大家可以打印一下$scope.LoginList 看看里面是什么;
alert(JSON.stringify($scope.LoginList))
} ]);
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
Angularjs之ngModel中的值驗(yàn)證綁定方法
今天小編就為大家分享一篇Angularjs之ngModel中的值驗(yàn)證綁定方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09
Angular2管道Pipe及自定義管道格式數(shù)據(jù)用法實(shí)例分析
這篇文章主要介紹了Angular2管道Pipe及自定義管道格式數(shù)據(jù)用法,結(jié)合實(shí)例形式詳細(xì)分析了Angular2管道與純管道相關(guān)概念、語法及使用技巧,需要的朋友可以參考下2017-11-11
在AngularJS中如何使用谷歌地圖把當(dāng)前位置顯示出來
這篇文章給的大家介紹在AngularJS中如何使用谷歌地圖把當(dāng)前位置顯示出來,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,對(duì)angularjs 谷歌地圖相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-01-01
AngualrJS中的Directive制作一個(gè)菜單
本文給大家介紹AngualrJS中的Directive制作一個(gè)菜單,涉及到angularjs directive相關(guān)知識(shí),本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,特此分享供大家學(xué)習(xí)2016-01-01

