关于AngularJs数据的本地存储详解


Posted in Javascript onJanuary 20, 2017

第一、创建一个factory来储存和调取你的数据(你可以单独创建一个js文件,按照语义命名如:dataService.js。然后在你的主页面引入这个JS文件)

<!--引入到你的主页面里面-->
<script src="dataService.js"></script>
创建一个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] || '{}');
  }
 }
}]);

第二、将你创建的这个方法模块【datadService】注入到你要控制器中如下的控制器为【productCtrl】,下面我们创建一个set.js文件,里面代码如下:

'use strict';
angular.module('myApp').controller(
 'productCtrl',
 [ '$scope','datadService',
 function($scope, datadService) {
 $scope.appiAppType = 1;
 //这里面$scope.appiAppType的赋值同样可以通过$http.post或者$http.get
 //等方法返回的参数去赋值,例子如下:
 //$http.post('这里是你所要访问的接口【URL】',这里是你想要上传的参数).success(function(data){
   // $scope.appiAppType = data;
   //});
 datadService.setObject("lodinData", $scope.appiAppType);// 将你获取来的数据存储到你之前创建的【datadService】中,这里面的【lodinData】是KEY(个人理解就是你把数据存到大箱子里面这个箱子就是【datadService】,为了方便在这个箱子里面更好的寻找你想要的数据就给他一个小标签,那就是【lodinData】)
 } ]);

第三、关于存储好的数据如何在不同的控制其中获取到,下面我们创建一个get.js,里面代码如下:

'use strict';
//首先大家要把之前创建好的模块也就是那个装数据的箱子【datadService】放到这个控制器中(也就是模块注入)
//其次大家通过之前咱们设定的标签【lodinData】,用【getObject('key')】方法取到你想要的数据;
//具体实现就一行代码:datadService.getObject('lodinData');「注:把箱子拿出来(datadService)用(getObject)去拿你的这个(lodinData)标签下的数据」
angular.module('myApp').controller(
 'completeCtrl',
 [ '$scope', 'datadService',
 function($scope, datadService) {
 //我们这里取到来上面已经存好的数据:【datadService.getObject('lodinData');】并且把这个数据赋值给了【$scope.LoginList】
 $scope.LoginList = datadService.getObject('lodinData');
 //这里大家可以打印一下$scope.LoginList 看看里面是什么;
 alert(JSON.stringify($scope.LoginList))
 } ]);

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jQuery的.live()和.die() 使用介绍
Sep 10 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
Apr 22 Javascript
javascript实现根据3原色制作颜色选择器的方法
Jul 17 Javascript
jquery动感漂浮导航菜单代码分享
Apr 15 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
Dec 31 Javascript
jquery模拟实现鼠标指针停止运动事件
Jan 12 Javascript
Ajax与服务器(JSON)通信实例代码
Nov 05 Javascript
JS中关于正则的巧妙操作
Aug 31 Javascript
原生js中ajax访问的实例详解
Sep 19 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
May 14 Javascript
vue实现移动端拖动排序
Aug 21 Javascript
深入了解Vue3模板编译原理
Nov 19 Vue.js
html5 canvas 详细使用教程
Jan 20 #Javascript
canvas绘制万花筒效果(代码分享)
Jan 20 #Javascript
原生js实现网页顶部自动下拉/收缩广告效果
Jan 20 #Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
Jan 20 #Javascript
轻松理解Javascript变量的相关问题
Jan 20 #Javascript
js+css3实现旋转效果
Jan 20 #Javascript
Bootstrap 手风琴菜单的实现代码
Jan 20 #Javascript
You might like
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
2014/11/04 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
Zend Framework自定义Helper类相关注意事项总结
2016/03/14 PHP
Javascript - HTML的request类
2006/07/15 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
node.js中的socket.io的广播消息
2014/12/15 Javascript
基于Jquery实现焦点图淡出淡入效果
2015/11/30 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
2016/11/03 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
2016/12/08 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
Python字符串中查找子串小技巧
2015/04/10 Python
Python中的lstrip()方法使用简介
2015/05/19 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
python matlibplot绘制3D图形
2018/07/02 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
简单了解python PEP的一些知识
2019/07/13 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
详解字符串在Python内部是如何省内存的
2020/02/03 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
委托协议书范本
2014/04/22 职场文书
销售业务员岗位职责
2015/02/13 职场文书
个人收入证明格式
2015/06/24 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers
Java并发编程必备之Future机制
2021/06/30 Java/Android
JVM之方法返回地址详解
2022/02/28 Java/Android
【js设计模式】SOLID五大设计原则
2022/03/24 Javascript
Python OpenGL基本配置方式
2022/05/20 Python