我是angularjs的新手,并尝试编写用于登录验证的代码。以下是我的代码,用于检查输入的用户名和密码是否正确。按下登录按钮后,如果用户名或密码不正确,如何显示“无效的用户名”和“无效密码”消息?我想显示错误消息而不是使用alert.Thank you。
<script>
var app=angular.module("app",[]);
app.controller("MainCtrl",function($scope,$http,$window) {
$scope.checkLogin = function(result) {
//$http.get("login.jsp")
$http.get("login.jsp?sqlStr=select UsrNm,UsrPwd from dbo.tblUsr where UsrNm = '" + $scope.user_name + "'")
.success(function(response) {
$scope.myData = response;
if(!angular.isObject($scope.myData[0]))
alert("Invalid user name");
else
{
if($scope.myData[0].USRPWD!== $scope.password)
alert("Invalid password");
else
//alert("Successfully logged in");
$window.location.href = 'MainPage.html';
}
})
.error(function(){
alert("Resource not found");
});
};
});
</script>
答案 0 :(得分:0)
这样的事情会起作用:
<script>
var app=angular.module("app",[]);
app.controller("MainCtrl",function($scope,$http,$window) {
$scope.checkLogin = function(result) {
//$http.get("login.jsp")
$http.get("login.jsp?sqlStr=select UsrNm,UsrPwd from dbo.tblUsr where UsrNm = '" + $scope.user_name + "'")
.success(function(response) {
$scope.myData = response;
if(!angular.isObject($scope.myData[0]))
alert("Invalid user name");
else
{
if($scope.myData[0].USRPWD!== $scope.password)
alert("Invalid password");
$scope.hasError = true;
$scope.errorText = "Invalid Password";
else
//alert("Successfully logged in");
$window.location.href = 'MainPage.html';
$scope.hasError = false;
$scope.errorText = "";
}
})
.error(function(){
alert("Resource not found");
$scope.hasError = true;
});
};
});
并在你的HTML中:
<div ng-show="hasError">{{errorText}}</div>
编辑 - 这是验证密码的一种不好的方法,因为它看起来像是从服务器传回密码。不要这样做,它非常非常不安全。您应该使用服务器上的哈希进行验证,然后将授权或拒绝传递回客户端。此外,如果您在任何时候以纯文本方式传输密码,请务必使用SSL。