angular服务2

来源:互联网 发布:mac cocos 环境搭建 编辑:程序博客网 时间:2024/05/29 14:41

AngularJS 与本地存储 LocalStorage 应用实例


这篇文章是一个关于AngularJS 与本地存储 LocalStorage 配合使用的一个应用实例,里面涉及到的东西也不少,但关键是它们都很简单,你可以不费吹灰之力就能把它人拿下,不信,你试试!废话不多说,直接上代码。你也可以先去品尝一下 AngularJS 与本地存储 LocalStorage 应用实例 Demo:http://yunkus.com/demo/angularjs/localstorage/。戴好安全带,网速有点快。

HTML代码

  1. <!DOCTYPE html>
  2. <html ng-app="yk">
  3. <head>
  4. <meta http-equiv="Content-type" content="text/html;charset=utf-8">
  5. <title>angularJS 本地存储 localStorage.setItem() | localStorage.getItem()</title>
  6. <link rel="stylesheet" href="../../lib/bootstrap.min.css">
  7. <script type="text/javascript" src="../../lib/angular.min.js"></script>
  8. <script type="text/javascript" src="./js/index.js"></script>
  9. </head>
  10. <body>
  11. <div ng-controller="ctrl">
  12. <div class="container">
  13. <div class="panel panel-default">
  14. <div class="panel-heading text-center">
  15. <!-- 从JS里获取默认的数据 并放到本地存储 localStorage中 -->
  16. <button class="btn btn-info" ng-click="setLocalStorage()">设置数据</button>
  17. <!-- 从 localStorage 中获取刚存入的数据 -->
  18. <button class="btn btn-info" ng-click="getDataLocalStorage()">读取数据</button>
  19. <!-- 修改数据 点页面中的保存按钮,再次保存到 localStorage 中-->
  20. <button class="btn btn-info" ng-click="modifyLocalStorage()">修改数据</button>
  21. <!-- 从localStorage中清空一条数据 -->
  22. <button class="btn btn-info" ng-click="removeLocalStorage()">删除一条数据</button>
  23. <!-- 清空整个localStorage -->
  24. <button class="btn btn-info" ng-click="clearLocalStorage()">清空数据</button>
  25. </div>
  26. <div class="panel-body">
  27. <!-- 开始默认显示内容 -->
  28. <div ng-if="beginHere">
  29. 开始 LocalStorage 之旅前,LocalStorage 里什么都没有,你可以依次点 F12 ,切换到 Resources 面板里的 Local Storage 页签查看数据情况。所以现在你只需要点击设置数据就可以把默认的数据存储到 LocalStorage 里了。
  30. </div>
  31. <div ng-if="!beginHere">
  32. <!-- message END-->
  33. <div class="message">
  34. <div ng-if="setFlag">
  35. <p>恭喜,localStorage 数据设置成功!你可以依次点 F12 ,切换到Resources面板里的 Local Storage 页签查看数据情况</p>
  36. </div>
  37. <div ng-if="getFlag || modifyFlag || removeFlag">
  38. <table class="table table-bordered table-striped">
  39. <thead>
  40. <tr>
  41. <td>序号</td>
  42. <td>姓名</td>
  43. <td>城市</td>
  44. <td>对应值</td>
  45. <td>国家</td>
  46. <td ng-if="removeFlag">操作</td>
  47. </tr>
  48. </thead>
  49. <tbody>
  50. <tr ng-repeat="v in getData">
  51. <td><input class="form-control" type="text" ng-model="$index" ng-disabled="chmod"></td>
  52. <td><input class="form-control" type="text" ng-model="v.person" ng-disabled="chmod"></td>
  53. <td><input class="form-control" type="text" ng-model="v.city" ng-disabled="chmod"></td>
  54. <td><input class="form-control" type="text" ng-model="v.value" ng-disabled="chmod"></td>
  55. <td><input class="form-control" type="text" ng-model="v.country" ng-disabled="chmod"></td>
  56. <td ng-if="removeFlag"><button class="btn btn-danger" ng-click="removeItemLocalStorage($index)">删除</button></td>
  57. </tr>
  58. <tr ng-if="modifyFlag || removeFlag">
  59. <td colspan="4" ng-if="modifyFlag"></td>
  60. <td colspan="5" ng-if="removeFlag"></td>
  61. <td ng-class="{'text-right':modifyFlag}">
  62. <button class="btn btn-success" ng-click="saveLocalStorage()" ng-if="modifyFlag">提交</button>
  63. <button class="btn btn-success" ng-click="saveItemLocalStorage()" ng-if="removeFlag">提交</button>
  64. </td>
  65. </tr>
  66. </tbody>
  67. </table>
  68. </div>
  69. <div ng-if="saveSuccess">
  70. <p>恭喜,localStorage 数据修改成功!你可以依次点 F12 ,切换到Resources面板里的 Local Storage 页签查看数据情况</p>
  71. </div>
  72. <div ng-if="clearFlag">
  73. <p>恭喜,localStorage 数据清空成功!你可以依次点 F12 ,切换到Resources面板里的 Local Storage 页签查看数据情况</p>
  74. </div>
  75. </div>
  76. <!-- message END-->
  77. </div>
  78. </div>
  79. </div>
  80. </div>
  81. </div>
  82. </body>
  83. </html>

JavaScript 代码

  1. var m = angular.module("yk",[]);
  2. m.controller("ctrl",["$scope",function($scope){
  3. $scope.dataArray = [
  4. {person:"大明",city:"珠海",value:"zhuhai",country:"China"},
  5. {person:"大黑",city:"广州",value:"guangzhou",country:"China"},
  6. {person:"大白",city:"深圳",value:"shenzhen",country:"China"},
  7. {person:"大红",city:"韶关",value:"shaoguan",country:"China"},
  8. {person:"大树",city:"Alaska",value:"alaska",country:"America"},
  9. {person:"大头",city:"New York",value:"newyork",country:"America"},
  10. {person:"大风",city:"Washington",value:"washington",country:"America"},
  11. {person:"大浪",city:"California",value:"california",country:"America"}
  12. ];
  13. $scope.beginHere = true;
  14. // 修改一条或者多条数据后的保存按钮处理函数
  15. $scope.saveLocalStorage = function(){
  16. localStorage.clear();
  17. localStorage.setItem("data",angular.toJson($scope.getData));
  18. }
  19. // 把 $scope.dataArray 的数据存放到 LocalStorage中
  20. $scope.setLocalStorage = function(){
  21. $scope.beginHere = false;
  22. $scope.setFlag = true;
  23. $scope.getFlag = false;
  24. $scope.modifyFlag = false;
  25. $scope.clearFlag = false;
  26. $scope.removeFlag = false;
  27. $scope.saveSuccess = false;
  28. localStorage.setItem("data",angular.toJson($scope.dataArray));
  29. }
  30. //从 LocalStorage 里取数据
  31. $scope.getDataLocalStorage = function(){
  32. if(localStorage.length == 0){
  33. alert("请先点击 {设置数据} 按钮");
  34. }else{
  35. $scope.beginHere = false;
  36. $scope.setFlag = false;
  37. $scope.getFlag = true;
  38. $scope.chmod = true;
  39. $scope.modifyFlag = false;
  40. $scope.clearFlag = false;
  41. $scope.removeFlag = false;
  42. $scope.saveSuccess = false;
  43. $scope.getData = angular.fromJson(localStorage.getItem("data"));
  44. }
  45. }
  46. //切换到修改数据页面
  47. $scope.modifyLocalStorage = function(){
  48. $scope.hasLocalStorage();
  49. $scope.beginHere = false;
  50. $scope.setFlag = false;
  51. $scope.getFlag = false;
  52. $scope.chmod= false;
  53. $scope.modifyFlag = true;
  54. $scope.clearFlag = false;
  55. $scope.removeFlag = false;
  56. $scope.saveSuccess = false;
  57. $scope.modityResult = localStorage.getItem("data");
  58. }
  59. //清空 LocalStorage
  60. $scope.clearLocalStorage = function(){
  61. $scope.hasLocalStorage();
  62. $scope.beginHere = true;
  63. $scope.setFlag = false;
  64. $scope.getFlag = false;
  65. $scope.modifyFlag = false;
  66. $scope.clearFlag = false;
  67. $scope.removeFlag = false;
  68. $scope.saveSuccess = false;
  69. localStorage.clear();
  70. console.log(angular.fromJson(localStorage.getItem("data")));
  71. $scope.getData = angular.fromJson(localStorage.getItem("data"));
  72. }
  73. // 切换到删除数据页面
  74. $scope.removeLocalStorage = function(){
  75. $scope.hasLocalStorage();
  76. $scope.beginHere = false;
  77. $scope.setFlag = false;
  78. $scope.getFlag = false;
  79. $scope.modifyFlag = false;
  80. $scope.clearFlag = false;
  81. $scope.removeFlag = true;
  82. $scope.saveSuccess = false;
  83. $scope.chmod = true;
  84. }
  85. // 删除一条数据
  86. $scope.removeItemLocalStorage = function(index){
  87. $scope.getData.splice(index,1);
  88. $scope.saveSuccess = false;
  89. }
  90. // 删除一条数据后,保存按钮处理函数
  91. $scope.saveItemLocalStorage = function(){
  92. localStorage.setItem("data",angular.toJson($scope.getData));
  93. $scope.saveSuccess = true;
  94. }
  95. // 判断 LocalStorage 是否已经存在
  96. $scope.hasLocalStorage = function(){
  97. if(localStorage.length == 0){
  98. alert("请先点击 {设置数据} 按钮 ");
  99. }else{
  100. if($scope.getData == undefined){
  101. alert("请先点击 {读取数据} 按钮 ");
  102. }
  103. }
  104. }
  105. }]);

这个例子里面的JS 代码有点多,但是主要的代码就那么几行,其余的 ture、false 都是用于判断显示隐藏页面用的。

原创粉丝点击