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 条件
})
storage.some(function ( v ) {
return v.name === name;
//strorage中name的值和输入的值相等,返回true 返之返回false
});
附上源代码.......
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.red {
color: red;
}
</style>
</head>
<body ng-app="ZhuCeApp">
<!-- ZhuCeCtrl -->
<!-- View -->
<div ng-controller="ZhuCeController">
用 户 名: <input type="text" ng-model="name"><br />
密 码: <input type="text" ng-model="pwd"><br />
确认密码: <input type="text" ng-model="pwd2"><br />
<input type="button" value="注册" ng-click="ZhuCe()">
<span class="red">{{message}}</span>
</div> </body>
<script src="./angular.js"></script>
<script>
// Model
function PersonInfo ( name, pwd ) {
this.name = name;
this.pwd = pwd;
} PersonInfo.prototype.saveToLocalStorage = function () {
// 将 this 写入 本地存储
// 先将以前的数据取出来, 然后在合并到数据中, 再写一会去
var storage = window.localStorage.getItem( 'PersonInfo' ); // 第一次 没有数据 undefiend
// 第二次 "[ { "name": "andim", 'pwd': '123' } ]" storage = storage ? JSON.parse( storage ) : []; // 第一次 storage 是 []
// 第二次 storage 是 [ { "name": "andim", 'pwd': '123' } ] storage.push( this ); // 第一次 [ { "name": "andim", 'pwd': '123' } ]
// 第二次 [ { "name": "andim", 'pwd': '123' }, { "name": "zhangsan", "pwd": "123456" } ] window.localStorage.setItem( 'PersonInfo', JSON.stringify( storage ) );
} //检测是否有重名
PersonInfo.selectByName = function ( name ) {
var storage = window.localStorage.getItem( 'PersonInfo' );
storage = storage ? JSON.parse( storage ) : []; return storage.some(function ( v ) {
return v.name === name;
});
} // Controller
angular.module( 'ZhuCeApp', [] )
.controller( 'ZhuCeController', function ( $scope ) { // 处理逻辑
$scope.ZhuCe = function () {
$scope.message = ''; // 1 需要验证用户的输入
var name = $scope.name,
pwd = $scope.pwd,
pwd2 = $scope.pwd2; if ( name === undefined || name.trim().length === 0 ||
pwd === undefined || pwd.trim().length === 0 ||
pwd2 === undefined || pwd2.trim().length === 0 ) {
$scope.message = '请输入完整信息';
return;
} // 2 如果输入了内容验证密码输入是否一致
if ( pwd !== pwd2 ) {
$scope.message = '两次密码输入不一致';
return;
} // 判断 名字是否已被使用
if ( PersonInfo.selectByName( name ) ) {
$scope.message = '该用户已存在....';
return;
} // 3 写入数据库( localStorage )
var data = new PersonInfo( name, pwd ); // 写到 本地存储中
data.saveToLocalStorage();
$scope.name = $scope.pwd = $scope.pwd2 = '';
}
});
</script>
</html>
很简陋的方法...勿见笑>>>>
Angular之简单的登录注册的更多相关文章
- Python 实现简单的登录注册界面
Python 实现简单的登录注册界面 注意:编写代码之前需要导入很重要的包 import tkinter as tk import pickle from tkinter import message ...
- 7. Swift 基于Xmpp和openfire实现一个简单的登录注册
1. 基本步骤:首先导入Xmpp框架,配置环境 ->由于我们使用的是OC的Xmpp框架,再进行Swift开发时需要进行桥接. 具体方法就是创建一个基于c的.h的头文件,然后将我们需要编译OC的语 ...
- node.js实现简单的登录注册页面
首先需要新建四个文件 一个服务器js 一个保存数据的txt 一个登陆.一个注册页面html 1.注册页面 <!DOCTYPE html> <html lang="en&qu ...
- spring boot1.1 idea + springboot + mybatis(mybatis-generator) +mysql +html实现简单的登录注册
前言 这两年springboot比较火,而我平时的工作中不怎么使用spring boot,所以工作之余就自己写写项目练练手,也跟大家一起学习. 打算从最开始的搭架子,登录注册,到后台管理的增删改查,业 ...
- go语言实现一个简单的登录注册web小程序
最近学习golang也有一段时间了,基础差不多学了个大概,因为本人是java程序员,所以对web更感兴趣.根据<go web编程>中的例子改编一个更简单的例子,供新手参考,废话不多说,上菜 ...
- Python简单的登录注册代码
#-*- coding: utf-8 -*- import hashlib # 定义数据库(声明字典) #注册登录的简单hash处理 db={} def get_md5(password): md5= ...
- PHP 链接数据库1(连接数据库&简单的登录注册)
对 解析变量的理解 数据库的名称和表的名称不能重复 从结果中取出的数据 都是以数组的形式取出的 1.PHP查询数据库中的某条信息 //PHP链接数据库 /*1.造链接对象 IP地址 用户名 密码 ...
- java web 简单的登录注册
--sql文件 create database studentgouse studentgocreate table stuinfo(--stuid int primary key identity( ...
- 基于SSM框架实现简单的登录注册
一.环境配置 工程目录 在pom.xml添加依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=& ...
随机推荐
- stm32 PWM输出学习
STM32 的定时器除了 TIM6 和 7,其他的定时器都可以用来产生 PWM 输出.其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出.通用定时器也能同时产生多达 4路 ...
- pat06-图5. 旅游规划(25)
06-图5. 旅游规划(25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该 ...
- 常见的25个顶级PHP模板引擎
为了找到一个好的模板引擎,我在互联网上进行搜索,目前已经整理出了以下名单: SmartySmarty的特点是将模板编译成PHP脚本,然后执行这些脚本.很快,非常灵活. Heyes Template C ...
- 文件选择之OpenFileDialog控件
OpenFileDialog控件主要用于选择要打开的文件,在使用时可以在属性面变中设置属性,也可在代码中设置其属性 OpenFileDialog控件的属性 InitialDirectory 对话框的初 ...
- java使用jdbc连接数据库步骤
确定连接的数据库类型<mysql,oracle,db2,moangdb,sqlservlet> 下载数据库的驱动(http://mvnrepository.org),并把jar包添加到项目 ...
- 粗看ES6之数组
标签: javascript es6 数组新增方法 map(可以理解为是映射,以一定规则修改数组每一项并返回全新数组) reduce(可以理解为是汇总,一堆出来一个) filter(可以理解为过滤,筛 ...
- 在UITableView中识别左右滑动,实现上下翻页的功能
目前有三种方案: 1. UIScrollView + UITableView. 实现方法,在UIScrollView中,加入UITableView即可 设置UIScrollView的代理和方法 - ( ...
- Django auth组件拓展 关联外部信息---------------------------- Profile 模式
https://docs.djangoproject.com/en/2.1/topics/auth/customizing/ 官方文档. 网上的get_profile 方法不好用太假了 可能我没用明白 ...
- 【Android学习入门】Android studio基本设置
1.背景设置 依次选择File->Settings-->Appearance & Behaviour->Apprearance,然后勾选 show line number. ...
- 【起航计划 016】2015 起航计划 Android APIDemo的魔鬼步伐 15 App->Activity->Wallpaper 系统壁纸作为当前Activity的背景
Wallpaper介绍一个Activity如何通过Style把系统Wallpaper作为当前Activity的背景. 这是WallpaperActivity在AndroidManifest.xml中的 ...