|
目前我在使用angularjs +cordova+sqlite,进行移动设备开发,碰到以下两三个问题还请各位高手解答一下:
1.我在使用sqlite离线验证时,在回调方法中跳转页面,第一次点击未反应,需要连接点击两次。
2.我在使用angularjs与服务器端数据交互时,不能正常通信,我在模拟器的浏览器是可以访问服务器地址,两个问题的代码如下:
- db = storage.createDB();
- db.transaction(function (tx) {
- tx.executeSql("select * from userInfo where email=?", [$scope.login.loginId], function (tx, rs) {
- if (rs.rows.length > 0) {
- var ret= rs.rows.item(0);
- if (ret.password == $scope.login.Password) {
- tx.executeSql("update userInfo set isRember=? where email=?", [$scope.login.RememberMe ? 1 : 0, $scope.login.loginId],function(tx,rs){
-
- toastr.success('离线登录成功,系统将自动跳转至主页面!');
- $location.path('/loginhome');
-
- });
- } else {
- toastr.error('用户名或密码错误,请重新输入!');
- }
- // storage.put('offInfo', angular.toJson({ offPwd: rs.rows.item(0).password, offName: rs.rows.item(0).name, offexp: rs.rows.item(0).exp, isLogin: true }));
- } else {
- //离线没有存储.
- var url = 'http://gleazweb005.chinacloudsites.cn/Apps/VerifyPasswordByEmail?Email=' + $scope.login.loginId + '&Password=' + $scope.login.Password + '&callback=JSON_CALLBACK';
- $http.jsonp(url).success(function (d) {
- $rootScope.loading = false;
- if (d.sta == true) {
- toastr.success('登录成功,系统将自动跳转至主页面!');
- tx.executeSql("Insert into userInfo(email,password,name,school,sex,createTime,exp,isRember)values(?,?,?,?,?,?,?,?)"
- , [d.obj.Email, escape($scope.login.Password), d.obj.Name, d.obj.School
- , angular.isUndefined(d.obj.Speicalty) ? '' : d.obj.Speicalty
- , angular.isUndefined(d.obj.teachInID) ? '' : d.obj.teachInID
- , d.obj.sex, new Date().getTime(), parseInt(d.exp), $scope.login.RememberMe ? 1 : 0], function (tx, rs) {
-
- $location.path('/loginhome');
- });
- } else {
- $rootScope.loading = false;
- toastr.error('登录失败,原因:' + d.obj);
- }
- }).error(function (d, status, headers, config) {
- $rootScope.loading = false;
- toastr.error('登录发生错误' + d);
- });
- }
- });
- });
复制代码
|
|