溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

關(guān)于AngularJs數(shù)據(jù)的本地存儲詳解

發(fā)布時間:2020-09-16 05:54:55 來源:腳本之家 閱讀:191 作者:潘冬子 欄目:web開發(fā)

第一、創(chuàng)建一個factory來儲存和調(diào)取你的數(shù)據(jù)(你可以單獨創(chuàng)建一個js文件,按照語義命名如:dataService.js。然后在你的主頁面引入這個JS文件)

<!--引入到你的主頁面里面-->
<script src="dataService.js"></script>
創(chuàng)建一個factory
'use strict';
angular.module('myApp')
.factory('datadService',['$window',function($window) {
 return{ 
 //存儲單個屬性
  set :function(key,value){
  $window.localStorage[key]=value;
  }, 
  //讀取單個屬性
  get:function(key,defaultValue){
  return $window.localStorage[key] || defaultValue;
  }, 
  //存儲對象,以JSON格式存儲
  setObject:function(key,value){
  $window.localStorage[key]=JSON.stringify(value);
  }, 
  //讀取對象
  getObject: function (key) {
  return JSON.parse($window.localStorage[key] || '{}');
  }
 }
}]);

第二、將你創(chuàng)建的這個方法模塊【datadService】注入到你要控制器中如下的控制器為【productCtrl】,下面我們創(chuàng)建一個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ù)存儲到你之前創(chuàng)建的【datadService】中,這里面的【lodinData】是KEY(個人理解就是你把數(shù)據(jù)存到大箱子里面這個箱子就是【datadService】,為了方便在這個箱子里面更好的尋找你想要的數(shù)據(jù)就給他一個小標簽,那就是【lodinData】)
 } ]);

第三、關(guān)于存儲好的數(shù)據(jù)如何在不同的控制其中獲取到,下面我們創(chuàng)建一個get.js,里面代碼如下:

'use strict';
//首先大家要把之前創(chuàng)建好的模塊也就是那個裝數(shù)據(jù)的箱子【datadService】放到這個控制器中(也就是模塊注入)
//其次大家通過之前咱們設(shè)定的標簽【lodinData】,用【getObject('key')】方法取到你想要的數(shù)據(jù);
//具體實現(xiàn)就一行代碼:datadService.getObject('lodinData');「注:把箱子拿出來(datadService)用(getObject)去拿你的這個(lodinData)標簽下的數(shù)據(jù)」
angular.module('myApp').controller(
 'completeCtrl',
 [ '$scope', 'datadService',
 function($scope, datadService) {
 //我們這里取到來上面已經(jīng)存好的數(shù)據(jù):【datadService.getObject('lodinData');】并且把這個數(shù)據(jù)賦值給了【$scope.LoginList】
 $scope.LoginList = datadService.getObject('lodinData');
 //這里大家可以打印一下$scope.LoginList 看看里面是什么;
 alert(JSON.stringify($scope.LoginList))
 } ]);

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持億速云!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI