缘多多
缘多多
  • 发布:2015-06-25 18:36
  • 更新:2016-05-22 19:59
  • 阅读:3264

localstorage和websql的问题

分类:MUI

问题一:我的登录表单验证使用的是Angularjs的方法,在input中需要绑定ng-model才能实现验证。我使用localstorage存的用户名,想使用value=“{{}}”的方式显示,但是问题来了,value和ng-model有冲突,想验证就不能显示,想显示就能验证。
输入框以及验证的html部分代码:

<li id="offCanvas_switch1" class="mui-table-view-cell mui-input-clear">  
						<span class="mui-icon mui-icon-person"></span>  
//这里的ng-model和value只能留一个  
						<input id="username" value=“{{strName}}” ng-model="FormData.username" class="mui-input-clear mui-input" style="max-width: 65%;" type="number" name="username" required ng-minlength="3" ng-maxlength="10" />  
						<br />  
						<span class="error" ng-show="form.$dirty && form.username.$invalid" style="color: red;">请输入正确的用户名</span>  
					</li>

存储以及取值的js部分代码:
angularjs取值:

		var myApp = angular.module('myApp', []);  
				myApp.controller('testController', function($scope) {  
						strName = localStorage.getItem("username");  
						$scope.strName = { 'text':localStorage.getItem("username")};  
				});

点击登录时存储用户名:

document.getElementById("main").addEventListener('tap',function(){  
					var userName=document.getElementById("username").value;  
					localStorage.setItem("username", userName);  
});

我想找一个解决办法,可以既保留验证,又可以默认显示用户名(即点击登录保存用户名到localsorage然后将用户名在加载body页面时,在用户名框中加载用户名),不知道有没有什么页面初始化 方法么?我觉得可以把从localstorage的值在初始化的时候赋给input就行了。我看了看mui.init()貌似是一个初始化方法,但是试着写了一下没有实现。

问题二:
关于websql的,没有是用过,如果我想把username和password两个字段存到user表里,那我需要做些什么呢?我先创建数据库数据表。

//创建数据库   
var db = openDatabase('autoInsuranceDB', '1.0', 'AutoInsurance DB', 10*1024);  
//创建数据库中的表  
function createtables(){  
db.transaction(function (context) {  
		   	//业务员表  
           	context.executeSql('CREATE TABLE IF NOT EXISTS users (id unique, username,password)');

之后的插入数据对么?只需要写一句插入就可以了?

//插入数据  
  
context.executeSql('INSERT INTO LOGS (id, username,password) VALUES (1, "帅哥“,”123”);  

还是需要再写一个方法,在方法里插入这条数据?

2015-06-25 18:36 负责人:无 分享
已邀请:
HGDQ

HGDQ

缘多多

缘多多 (作者)

其实我的问题挺简单的
问题一:能否使用angularjs但保全表单验证和记住用户名,或者通过初始化方法中加载用户名。
问题二:websql的操作方法,比如插入。

缘多多

缘多多 (作者)

问题一已解决:解决办法是在angularjs的控制器中直接给对应的ng-mo赋值。
下面是用户名输入框:

<input id='username' ng-model="user.username" type="text" class="mui-input-clear mui-input"   
					placeholder="请输入账号" style="max-width: 50%;" name="username" required ng-minlength="3" ng-maxlength="10" />

下面是控制器(确认保存到localstorage了):

//自定义控制器  
				var myApp = angular.module('myApp', []);  
				myApp.controller('testController', function($scope) {  
						$scope.user={  
							'username':localStorage.getItem("username")//保存用户名  
						};  
				});

这样就能实现记住密码了。

缘多多

缘多多 (作者)

问题二还没有解决,我不太明白websql的保插入方法应该写在哪儿。是写在建数据库建表的那个js文件里,必须写在一起么?之后用的时候在html引入。还是直接写在html的script里也可以?如果是写在html里的话,是否需要声明db之类的,才能用db去点对象?

该问题目前已经被锁定, 无法添加新回复