Angular之简单的登录注册

使用Angular实现了一个简单的登录注册的功能........

涉及到的Angular知识点很少 主要是这个功能的实现...(*^__^*) 嘻嘻……

里面涉及到的知识点记录:

1.本地存储的操作 localStorage

获取本地存储的值 window.localStorage.getItem(key)-->value   (得到的数据是字符串"[ { "name": "andim", 'pwd': '123' } ]" )

设置本地存储的值 window.localStorage.setItem(key,value)  

操作:

将取出来的数据(字符串)转化为数组-->然后插入(push)新的值-->再转化为字符串-->再存到本地存储中

方法 :JSON.parse( storage )-->storage.push( this )-->JSON.stringify( storage )-->window.localStorage.setItem(...)

  • JSON.parse(  )      将 json 格式的字符串, 转换成 对象
  • JSON.stringifly( )  将一个 对象 转换成一个 JSON 格式的字符串

    JSON 格式已经是 网络传输中使用的核心数据格式:
    1. 对象的形式: '{ "key": value, "key": value, ... }'
    2. 数组形式: '[ jsonObj, jsonObj, ... ]'

2.数组中的some()方法

遍历数组,遇到符合条件的就停止遍历,有符合就返回true,反之返回flase

数组.some(function(数组v){

return 条件

 

})

1 storage.some(function ( v ) {
2 
3     return v.name === name;
4 
5 //strorage中name的值和输入的值相等,返回true 返之返回false
6 
7 });

 附上源代码.......

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Document</title>
  6     <style>
  7         .red {
  8             color: red;
  9         }
 10     </style>
 11 </head>
 12 <body ng-app="ZhuCeApp">
 13     <!-- ZhuCeCtrl -->
 14     <!-- View -->
 15     <div ng-controller="ZhuCeController">
 16         用 户 名: <input type="text" ng-model="name"><br />
 17         密&nbsp;&nbsp;码: <input type="text" ng-model="pwd"><br />
 18         确认密码: <input type="text" ng-model="pwd2"><br />
 19         <input type="button" value="注册" ng-click="ZhuCe()">
 20         <span class="red">{{message}}</span>
 21     </div>
 22 
 23 </body>
 24 <script src="./angular.js"></script>
 25 <script>
 26     // Model
 27     function PersonInfo ( name, pwd ) {
 28         this.name = name;
 29         this.pwd = pwd;
 30     } 
 31 
 32     PersonInfo.prototype.saveToLocalStorage = function () {
 33         // 将 this 写入 本地存储
 34         // 先将以前的数据取出来, 然后在合并到数据中, 再写一会去
 35         var storage = window.localStorage.getItem( 'PersonInfo' ); // 第一次 没有数据  undefiend
 36                                                                    // 第二次 "[ { "name": "andim", 'pwd': '123' } ]"
 37 
 38         storage = storage ? JSON.parse( storage ) : [];  // 第一次 storage 是 []
 39                                                          // 第二次 storage 是 [ { "name": "andim", 'pwd': '123' } ]
 40 
 41         storage.push( this );  // 第一次 [ { "name": "andim", 'pwd': '123' } ]
 42                                // 第二次  [ { "name": "andim", 'pwd': '123' }, { "name": "zhangsan", "pwd": "123456" } ]
 43 
 44         window.localStorage.setItem( 'PersonInfo', JSON.stringify( storage ) );
 45     }
 46 
 47      //检测是否有重名
 48     PersonInfo.selectByName = function ( name ) {
 49         var storage = window.localStorage.getItem( 'PersonInfo' );
 50         storage = storage ? JSON.parse( storage ) : [];
 51 
 52         return storage.some(function ( v ) {
 53             return v.name === name;
 54         });
 55     } 
 56 
 57     // Controller
 58     angular.module( 'ZhuCeApp', [] )
 59         .controller( 'ZhuCeController', function ( $scope ) {
 60             
 61             // 处理逻辑
 62             $scope.ZhuCe = function () {
 63                 $scope.message = '';
 64                     
 65                 // 1 需要验证用户的输入
 66                 var name = $scope.name, 
 67                     pwd = $scope.pwd, 
 68                     pwd2 = $scope.pwd2;
 69                     
 70                 if ( name === undefined || name.trim().length === 0 ||
 71                      pwd === undefined || pwd.trim().length === 0 ||
 72                      pwd2 === undefined || pwd2.trim().length === 0 ) {
 73                     $scope.message = '请输入完整信息';
 74                     return;
 75                 }
 76 
 77                 
 78                 // 2 如果输入了内容验证密码输入是否一致
 79                 if ( pwd !== pwd2 ) {
 80                     $scope.message = '两次密码输入不一致';
 81                     return;
 82                 }
 83                 
 84                 // 判断 名字是否已被使用
 85                 if ( PersonInfo.selectByName( name ) ) {
 86                     $scope.message = '该用户已存在....';
 87                     return;
 88                 }
 89                 
 90                 
 91                 // 3 写入数据库( localStorage )
 92                 var data = new PersonInfo( name, pwd );
 93 
 94                 // 写到 本地存储中
 95                 data.saveToLocalStorage();
 96                 $scope.name = $scope.pwd = $scope.pwd2 = '';
 97             }
 98         });
 99 </script>
100 </html>
View Code

很简陋的方法...勿见笑>>>>

转载于:https://www.cnblogs.com/xiaoyun1121/p/6044815.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信扫码下载iosAPP

1.首先在应用宝上传你的安卓APP应用&#xff0c;AppStore已经有了APP 2.进入应用宝app应用管理中心&#xff0c;点击“微下载”&#xff0c;然后里面的微下载链接地址就可以用了&#xff0c;可以看到ios可以通过应用宝再跳到AppStore就可以实现下载了转载于:https://www.cnblog…

linux中的加法函数,上下文管理练习(为加法函数计时)

上下文管理(为加法函数计时)为加法函数计时使用装饰器显示该函数的执行时长使用上下文管理显示该函数的执行时长装饰器实现import timeimport datetimefrom functools import wrapsdef logger(fn):wraps(fn) # wraps(fn)(wrapper)def wrapper(*args, **kw):start datetime.dat…

07数组与接口

1、运行TextInherists.java 示例&#xff0c;观察输出&#xff0c;注意总结父类与子类之间构造方法的的调用关系&#xff0c;修改parent构造方法的代码&#xff0c;显式调用grandparent另一个构造函数。 源代码&#xff1a; class GrandParent{ public GrandParent(){ System.o…

windows 访问linux中的mongodb,MongoDB的linux系统下的安装与连接

一 安装MongoDB的服务下载Linux系统下的MongoDB安装包上传压缩包到linux服务器中&#xff0c;解压到对应的安装目录下mkdir /usr/local/mongodbtar -zxvf mongodb-linux-x86_64-4.0.10.tgzmv mongodb-linux-x86_64-4.0.10 /usr/local/mongodb新建目录&#xff0c;分别用来存储数…

linux sqlserver 管理工具,Linux连接SqlServer的图形化工具SQuirrel

SQuirrel SQL一款基于java的数据库管理工具。所以可以运行在任意平台上&#xff0c;除了界面丑一点。在windows上我绝对不会选的&#xff0c;navicat多好。安装下载地址&#xff1a;https://sourceforge.net/projects/squirrel-sql/?sourcetyp_redirect在控制台运行&#xff1…

JDK源码包结构分类

最近查看JDK源码时&#xff0c;无意间发现几个类在陌生包里&#xff1a;com.sun.*、sun.*、org.*&#xff0c;google了一把总结了下以备他人搜索&#xff0c;如内容有误欢迎指正&#xff01;Jre库包含的jar文件(jdk1.6)&#xff1a;resources.jar、rt.jar、jsse.jar、jce.jar、…

GJM :Sql 各种语句 以及函数 [转载]

版权声明&#xff1a;本文原创发表于 【请点击连接前往】 &#xff0c;未经作者同意必须保留此段声明&#xff01;如有侵权请联系我删帖处理&#xff01;1.更改数据库的名称 2.表中有数据的情况下再添加列、删除列 3.在SQLServer 中各种查询语句的使用示例 4.模糊查询的语句 5.…

linux中断处理体系结构分析(一),Linux中断处理体系结构分析(二)

1.中断处理的体系结构我们知道编写设备驱动程序一定要用到中断处理函数&#xff0c;这在驱动程序的编写中&#xff0c;占据很重要的一部分。在响应一个特定的中断的时候&#xff0c;内核会执行一个函数&#xff0c;该函数叫做中断处理程序(interrupt handler)或中断服务例程(in…

c语言作业题五六章答案,数据结构(C语言版)第五六章习题答案

数据结构(C语言版)第五六章习题答案,人民邮电出版社,答案很详细。(15)设F是一个森林&#xff0c;B是由F变换得的二叉树。若F中有n个非终端结点&#xff0c;则B中右指针域为空的结点有( )个。A&#xff0e; n-1 B&#xff0e;n C&#xff0e; n1 D&#xff0e; n22&#xff0e;应…

Android中土司(Toast)的使用

Android中Toast的使用 什么是土司(Toast)? Toast是Android系统提供的一种非常好的提示方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何的屏幕空间. 下面我们通过代码来体验一下土司在Android中的使用 1 import android.a…

atoll找不到标识符c语言,C/C++编程笔记:C++中的atol,atoll和atof函数

1、atol()此函数将作为参数传递给函数调用的C类型字符串转换为长整数。它解析C字符串str&#xff0c;将其内容解释为整数&#xff0c;并作为long int类型的值返回。该函数丢弃出现在字符串开头的空白字符&#xff0c;直到找到非空白字符为止。如果C字符串str中的非空白字符序列…

c语言指针改良,重新认识C语言指针(上)(示例代码)

? 独创性并不是首次观察某种新事物&#xff0c;而是把旧的、很早就是已知的&#xff0c;或者是人人都视而不见的事物当新事物观察&#xff0c;这才证明是有真正的独创头脑 —尼采本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。https://github.com/midou-tech/article…

HT68F30控制GPG96244QS1 TFT液晶屏

资料上显示是SPI总线控制、在SPENB由高变底的时候起动传输、由低到高的时候停止转输、并且传送的时候先传高位的数据、现在没有效果出来&#xff08;正在找问题&#xff09; 没有效果的意思是&#xff1a; 1、LCD屏没有图像、只有背光在亮 2、还没有找到一个寄存器或者一种方…

linux —— shell 编程(文本处理)

导读 本文为博文 linux —— shell 编程&#xff08;整体框架与基础笔记&#xff09;的第4小点的拓展。&#xff08;本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行&#xff09; 目录基本文本处理流编辑器sedawk模式扫描与处理语言1、基本文本处理sort :用于排序&#xff0c;…

ub c语言,操作系统之LRU算法 C语言链表实现

LRU是Least Recently Used的缩写&#xff0c;即最近最少使用&#xff0c;是一种常用的页面置换算法&#xff0c;选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段&#xff0c;用来记录一个页面自上次被访问以来所经历的时间 t&#xff0c;当须淘汰一个页面时…

VMware 虚拟机 Ubuntu 系统执行 ifconfig 命令 eth0没有IP地址(intet addr、Bcast、Mask)

可能的原因是&#xff0c;你安装了也安装了其他的虚拟机软件&#xff0c;比如&#xff1a;VirtualBox。我们打开 控制面板 > 网络和共享中心 > 更改适配器设置 &#xff0c; 你就可以打开控制面板/网络和Internet/网络连接界面&#xff1a; 直接禁用相应的网络即可&#…

这本轻小说真厉害 2016

傲娇御坂美琴成轻小说女王一姐 轻小说排名公布 到了年底,作为轻小说的粉丝就没有理由不关注“这本轻小说真厉害!”的相关评选吧?腾讯动漫此前曾经报道过《OVERLORD》以及《龙王的工作》获得榜首殊荣的消息。而近日,年度的最佳作品、最佳角色以及最佳插画师等奖项也已经公布,快…

IDEA初次使用Tomcat运行项目(如何添加加载项目到Tomcat)

IDEA中Tomcat设置说明 Tomcat最好使用干净的版本 不同的版本适配不同的JDK 设置Tomcat基本信息 加载项目&#xff08;war和war exploed模式简单说明&#xff09; 配置完项目后警告消失 应用后启动 选择相应的模式即可

回溯算法背包问题迭代c语言,回溯法解决0_1背包问题(迭代和递归)

问题&#xff1a;0/1背包问题例子:weight数组代表物品重量&#xff0c;value数组代表物品价值&#xff0c;M代表背包容量。背包是按单位价值递减的顺序排列的&#xff0c;即value[i]/weight[i]>value[i-1]/weight[i-1].const int weight[Max]{1,11,21,23,33,43,45,55};const…