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,一经查实,立即删除!

相关文章

Linux命令行调用动态库,Linux动态链接库的使用

动态链接库与普通的程序相比而言&#xff0c;没有main函数&#xff0c;是一系列函数的实现。通过shared和fPIC编译参数生产so动态链接库文件。程序在调用库函数时&#xff0c;只需要连接上这个库即可。例如下面实现一个简单的整数四则运输的动态链接库&#xff0c;定义的cacula…

Linux用户、用户组、文件权限设置

最近打算更仔细学习一下linux操作系统。先是恶补了一下用户、用户组、文件权限这三样比较重要的知识。(我也正在学Linux&#xff0c;所以就找到这篇日志了&#xff0c;有些设置修改后需要重启系统后才能生效。)学习这几样东西&#xff0c;得先掌握linux的权限系统相关知识。lin…

linux系统ip访问53端口,linux – 使用公共IP地址无法访问本地端口

我有一个linux服务器,它有公共IP和私有IP.因此,当我使用公共IP登录时,终端直接显示私有IP.例&#xff1a;$ssh root55.27.XX.XXroots password:root10.1.4.20:~$hostname -I10.1.4.20root10.1.4.20:~$wget -qO- http://ipecho.net/plain ; echo55.27.xx.xx现在,我安装了Nginx,我…

微信扫码下载iosAPP

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

linux当前时间到1970年秒数,计算从1970年到当前时间所经历过的秒数

这个算法来自LINUX的源码&#xff0c;下面带有大神的解析&#xff0c;自己在RTC实验中也使用了&#xff0c;不用月份表&#xff0c;润平年的处理&#xff0c;几行就可得出结果&#xff0c;以下是程序和大神的解析Linux源码中的mktime算法解析我们知道&#xff0c;从CMOS中读出来…

脱水缩合(大搜索)

脱水缩合 (merge.c/cpp/pas) 【题目描述】 fqk 退役后开始补习文化课啦&#xff0c; 于是他打开了生物必修一开始复习蛋白质&#xff0c;他回想起了氨基酸通过脱水缩合生成肽键&#xff0c;具体来说&#xff0c;一个氨基和一个羧基会脱去一个水变成一个肽键。于是他脑洞大开&am…

ubuntu16.04下安装NS-2.35以及对simple例的理解

本人是在VMWare上安装的ubuntu16.04版本&#xff0c;然后安装NS2.35. 1.下载ns2的安装包&#xff0c;这里我选择的是ns-allinone-2.35.tar.gz压缩格式的all in one安装包&#xff0c;all in one 安装包包含所有的组件&#xff0c;比较方便&#xff0c;另附下载地址&#xff1a;…

linux查看登录服务器的ip历史记录,通过登陆IP记录Linux所有用户登录所操作日志的方法...

对于Linux用户操作记录一般通过命令history来查看历史记录&#xff0c;但是如果在由于误操作而删除了重要的数据的情况下&#xff0c;history命令就不会有什么作用了。那么依然要存有历史操作记录应该如何来实现呢&#xff1f;其实我们可以通过登陆IP地址来记录所有用户登录所操…

linux 向程序发送信号,Linux下的信号处理

Linux下的信号处理发布时间:2006-01-02 09:34:14来源:红联作者:reing前言&#xff1a;这一章我们讨论一下Linux下的信号处理函数。Linux下的信号处理函数&#xff1a;信号的产生信号的处理其它信号函数一个实例1.信号的产生Linux下的信号可以类比于DOS下的INT或者是Windows下的…

思科模拟器:[1]安装及汉化详解

思科模拟器是网络工程师经常使用的网络实验模拟软件&#xff0c;它可以很快捷的模拟网络中的各种设备(交换机、路由器、台式电脑、笔记本电脑、服务器、网络云)&#xff0c;搭建各种网络环境&#xff0c;模拟网络拓扑结构等。下面天使图文教程&#xff0c;告诉大家怎么安装这个…

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;分别用来存储数…

像阿超那样,花20分钟写一个能自动生成小心四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算。 和同学们比较一下各自程序的功能,实现方法的异同,等等...

package chapter;public class szys { public static void main(String[] args) { print30Questions(); } private static void print30Questions() { //说明&#xff1a;打印30道题函数&#xff0c;把接收到的题目字符串按照指定格式输出。…

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

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

【转】C++怎么读写windows剪贴板的内容?比如说自动把一个字符串复制.

// 复制数据至剪切板BOOL CopyToClipboard(const char* pszData, const int nDataLen){ if(::OpenClipboard(NULL)) { ::EmptyClipboard(); HGLOBAL clipbuffer; char *buffer; clipbuffer ::GlobalAlloc(GMEM_DDESHARE, nDataLen1); …

linux中sort命令实例,Linux命令之排序命令sort使用实例

名称&#xff1a;sort位置&#xff1a;/usr/bin/sort权限&#xff1a;所有用户用法&#xff1a; sort [OPTION]... [FILE]...sort [OPTION]... --files0-fromF选项&#xff1a;-b --ignore-leading-blanks 忽略最前面的空格-f --ignore-case fold lower case to…

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、…

linux帮助命令和用法,Linux命令帮助及history命令的使用

1.Linux命令帮助的获取详解在Linux中获取命令帮助时&#xff0c;内部命令和外部命令的获取方式是有区别的&#xff1a;即(1)内部命令&#xff1a;#help COMMAND? #man bash(2)外部命令&#xff1a;<1> # COMMAND --help# COMMAND -h<2> 使用手册(manu…

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

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