1.login.html

 <ion-view view-title="登录" hide-nav-bar="true">
<div class="bar bar-header bar-positive ">
<h1 class="title">登录</h1>
<button class="button button-clear" ng-click="registerclick()">注册</button>
</div>
<div class="bar bar-subheader">
<ion-scroll direction="x" scrollbar-x="false" overflow-scroll="true" style="overflow: hidden">
<div class="button-bar sub_header_list">
<a class="button button-clear {{isgeneralCss}}" ng-click="changeModel(0)">普通登录</a>
<a class="button button-clear {{isfastCss}}" ng-click="changeModel(1)">快捷登录</a>
</div>
</ion-scroll>
</div>
<ion-content class="has-subheader"> <form name="myForm" ng-show="isloginModel" ng-submit="signIn()">
<div class="list list-inset removePM">
<label class="item item-input">
<span class="input-label ion-android-people">&nbsp;&nbsp;用户名</span>
<input type="text" name="txtUserName" placeholder="请输入用户名" ng-model="user.username" required>
</label>
<label class="item item-input">
<span class="input-label ion-android-lock">&nbsp;&nbsp;密码</span>
<input type="password" name="txtPwd" placeholder="请输入密码" ng-model="user.password" required>
</label>
</div>
<div class="row list-borderless">
<div class="col col-67"><ion-checkbox ng-model="user.isChecked">是否记住密码</ion-checkbox> </div>
<div class="col col-center"><a href="#">忘记密码?</a></div>
</div> <div class="padding">
<button class="button button-block button-positive" type="submit" ng-disabled=" myForm.txtUserName.$invalid || myForm.txtPwd.$invalid">
<b>登&nbsp;&nbsp;录</b>
</button>
</div>
</form> <form name="myfastForm" ng-show="!isloginModel" ng-submit="signIn()">
<div class="list list-inset removePM">
<label class="item item-input">
<span class="input-label ion-android-people">&nbsp;&nbsp;手机号</span>
<input type="text" name="txtphone" placeholder="请输入手机号" ng-model="user.phone" required>
</label>
<label class="item item-input">
<span class="input-label ion-android-lock">&nbsp;&nbsp;验证码</span>
<input type="text" name="txtvercode" style="flex:120px;" placeholder="请输入验证码" ng-model="user.vercode" required>
<button class="button" style="font-size:12px; color:red;">获取验证码</button>
</label>
</div> <div class="padding">
<button class="button button-block button-positive" ng-disabled="myfastForm.txtphone.$invalid || myfastForm.txtvercode.$invalid">
<b>登&nbsp;&nbsp;录</b>
</button>
</div>
<div class="padding com">
<span class="positive">点击登录表明你已同意并阅读<a style="color:red; " href="#">《快捷登录条款》</a></span>
</div>
</form>
</ion-content>
</ion-view>

2.controller.js

   //用户登录
.controller('LoginCtrl', function ($scope, $state, $ionicLoading, userFactory, Storage) { $scope.user = {
username: "",
password: "",
isChecked: false,
phone: '',
vercode:''
}
$scope.$on('$stateChangeSuccess', function () {
if (Storage.get("loginInfo") != null) {
$scope.user.username = Storage.get("loginInfo").username;
$scope.user.password = Storage.get("loginInfo").password;
$scope.user.isChecked = Storage.get("loginInfo").isChecked;
}
else {
$scope.user.username = "";
$scope.user.password = "";
$scope.user.isChecked = false;
}
}); //登录
$scope.signIn = function () { userFactory.login($scope.user.username, $scope.user.password);
} $scope.$on('User.loginUpdated', function () {
console.log("User.loginUpdated");
var userRel = userFactory.getCurrentUser();
console.log(userRel);
if (userRel.status != "") {//登陆失败
$ionicLoading.show({
noBackdrop: true,
template: userRel.msg,
duration:
});
} else {
if ($scope.user.isChecked) {
Storage.set("loginInfo", $scope.user);
} else {
Storage.remove("loginInfo");
}
$state.go('app.user'); //路由跳转 }
}); //登录切换
$scope.isloginModel = true;
$scope.isgeneralCss = "sub_button_select";
$scope.isfastCss = "";
$scope.changeModel = function (lm) { if (lm == ) {
$scope.isgeneralCss = "sub_button_select";
$scope.isloginModel = true;
$scope.isfastCss = "";
}
if (lm == ) { $scope.isgeneralCss = "";
$scope.isfastCss = "sub_button_select";
$scope.isloginModel = false;
}
}
$scope.registerclick = function () {
$state.go("register");
}
})

3.services.js

 .factory('userFactory', function ($resource, $rootScope, ENV, Storage, $http, $q) {
var user = {}; //返回用户对象 return {
//登录
login: function (username, password) {
$http.get("http://192.168.0.109:8004/api/" + "/Login/Loging", { params: { UserName: username, Password: password} })
.success(function (response) {
console.log("Loging调用成功")
var json = eval('(' + response + ")");
user = json;
console.log(json.userInfo); if (json.status == "") {
Storage.set("UserKey", json.userInfo);
}
$rootScope.$broadcast('User.loginUpdated');
}).error(function (err, status) {
$ionicLoading.show({
noBackdrop: true,
template: err,
duration:
});
});
},
getCurrentUser: function () {
return user;
}
};
})
.factory('Storage', function ($state, ENV, $http, $rootScope) {
var version = "";
return {
set: function (key, data) {
return window.localStorage.setItem(key, window.JSON.stringify(data));
},
get: function (key) { return window.JSON.parse(window.localStorage.getItem(key));
},
remove: function (key) {
return window.localStorage.removeItem(key);
}
};
})

css:

.bar .sub_header_list .button.button-clear{

  border-bottom: 1px solid #eee;
}
.sub_header_list{
width: 100%;
}
.sub_header_list .button{
width: 50%;
color:#666;
}
.bar .sub_header_list .button.sub_button_select{
border-bottom:2px solid #387ef5;
position:relative;
}
.bar-subheader{
border-bottom: none;
}

效果图:

Ionic login简单登录页面的更多相关文章

  1. java web: eclipse & maven & jetty & struts2 & mysql = 简单登录页面

    第一次接触java web开发,花费了一天半的时间,写了个简单的登录页面,以此文为记. 开发工具 Eclipse Luna Release (4.4.0) 已集成maven,maven目前的体会就是管 ...

  2. 一步一步理解 python web 框架,才不会从入门到放弃 -- 简单登录页面

    上一节,我们基本了解了 Django 的一些配置,这一节,我们将通过一个简单的登录页面,进一步学习 Django 的使用. 新建项目 首先,新建一个 Django 项目,记得别弄错了哦. settin ...

  3. asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(三)—— 简单登录页面+sqlite+动软代码生成器的使用

    上一节讲到利用easyui的layout.tree.tab和datagrid创建用户管理的页面,注意利用到easyui的页面一定要按顺序添加jQuery和easyUI的.js和.css样式,灵活查看e ...

  4. (二)spring Security 自定义登录页面与校验用户

    文章目录 配置 security 配置下 MVC 自定义登录页面 自定义一个登陆成功欢迎页面 效果图 小结: 使用 Spring Boot 的快速创建项目功能,勾选上本篇博客需要的功能:web,sec ...

  5. python web框架 Django 登录页面

    在django 项目下 创建一个templates 放模板的文件夹 html文件都放在这里 在里面写一个login.html 登录页面 urls.py 加上 login 对应关系 from djang ...

  6. javaWeb简单登录实现验证数据库

    用户登录案例需求: 1.编写login.html登录页面 username & password 两个输入框 2.使用Druid数据库连接池技术,操作mysql,day14数据库中user表 ...

  7. PHP实践项目【1】:注册登录页面

    在我们这个项目里面,一共用到了5个php文件,他们分别是: login.php 登录页面 logincheck.php 登录检测php文件 register.php 新用户注册页面 regcheck. ...

  8. HTML5实战教程———开发一个简单漂亮的登录页面

    最近看过几个基于HTML5开发的移动应用,比如臭名昭著的12036移动客户端就是主要使用HTML5来实现的,虽然还是有点反应迟钝,但已经比较流畅了,相信随着智能手机的配置越来越高性能越来越好,会越来越 ...

  9. vue_cli下开发一个简单的模块权限系统之建立登录页面并且实现在浏览器输入地址出现内容

    新建一个Login.vue(登录页面,先把Hello.vue的内容复制过来即可) 然后我们打开router下面的index.js,第一个箭头:(引入vue路由)第二个箭头(引入我们新建的Login.v ...

随机推荐

  1. 2428: [HAOI2006]均分数据

    模拟退火.一种十分玄学的随机算法,网上可以查到比较详细的资料. 先随机地把数分成m组,每次随机地选择一个数,一开始直接选最小的一组,后来就随机一组,把这个数换到该组看看答案能不能变小,如果变小则换,如 ...

  2. STM32F4X 关于MDK上虚拟串口调试

    1. 下载安装VSPD 自行百度安装后,利用VSPD将PC上的两个虚拟串口连接起来.如图我将COM1 和COM2连接起来. a. 点击Addr pair. 可以看到Virtual ports上将两个虚 ...

  3. HTTP协议响应篇

    http响应的基本介绍 一个HTTP响应代表服务器向客户端回送的数据, 由三个部分构成 状态行[200 , 302 304, 403, 404, 500] 响应消息头 返回的实体内容 http响应状态 ...

  4. Collection单列集合中的常用实现类

    Collection 集合层次的根接口 List 有序 有索引 可以重复 ArrayList 底层数据结构是数组 查询快 增删快 线程不安全 效率高 LinkedList 底层数据结构是链表 查询慢 ...

  5. springboot整合TinyMCE文件上传回显

    今天想尝试TinyMCE富文本,准备着手搭建自己的博客,发现springboot上传文件,如果把文件放在static文件夹不能即时回显,百度了下,说是要刷新文件夹才能解决. 有问题就有解决办法 方法1 ...

  6. HYNB Round 15: PKU Campus 2019

    HYNB Round 15: PKU Campus 2019 C. Parade 题意 将平面上n*2个点安排在长度为n的两行上. 做法 首先可以忽略每个点之间的影响,只用考虑匹配即可 然后把所以点归 ...

  7. POJ 1696 /// 凸包

    题目大意: 不能向左拐 不能重复走 就是求一个螺旋凸包 把已经是凸包内的点标记一下就行 因为凸包的性质 所有点都能走到 注意起点的选择 还有 反复求凸包的过程中边界的改变 #include <c ...

  8. 如何给DropDownListFor设置默认值

    1.直接赋值: @Html.DropDownListFor(o => o.ParentId, ViewBag.root as IEnumerable<SelectListItem>, ...

  9. Halt- Linux必学的60个命令

    1.作用 halt命令的作用是关闭系统,它的使用权限是超级用户. 2.格式 halt [-n] [-w] [-d] [-f] [-i] [-p] 3.主要参数说明 -n:防止sync系统调用,它用在用 ...

  10. Ip- Linux必学的60个命令

    1.作用 ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如ifconfig.route等,使用权限为超级用户.几乎所有的Linux发行版本都支持该命令. ...