在我的登录页面上,当我输入错误的凭据(登录/通过)时,错误消息显示为红色。
在login.html中:
tabc.SelectionChanged += (sender2, args) =>
{
foreach (var item in tabc.Items)
{
if (item == ((TabItem)(tabc.SelectedItem)))
((TabItem)item).Foreground = Brushes.Red;
else
((TabItem)item).Foreground = Brushes.Black;
}
};
如果我明确地设置<div class="alert alert-danger" ng-show="authenticationError"
translate="login.messages.error.authentication">
<strong></strong>
</div>
,则该消息在屏幕上是持久的; (幸好)。
当ng-show="true"
是动态的(ng-show
变量)
当此变量设置为true时,将显示错误消息,但在屏幕上保留1秒钟后消失。
幕后(控制器+服务):
login.controller.js:
authenticationError
auth.service.js:
$scope.login = function () {
// event.preventDefault();
Auth.login({
username: $scope.username,
password: $scope.password,
rememberMe: $scope.rememberMe
}).then(function () {
$scope.authenticationError = false;
// if()
if ($rootScope.previousStateName === 'register') {
$state.go('home');
} else {
$rootScope.back();
}
}).catch(function () {
$scope.authenticationError = true;
});
};
auth.session.service.js:
angular.module('tessicommunicationApp')
.factory('Auth', function Auth($rootScope, $state, $q, $translate, Principal, AuthServerProvider, Account, Register, Activate, Password, PasswordResetInit, PasswordResetFinish) {
return {
login: function (credentials, callback) {
var cb = callback || angular.noop;
var deferred = $q.defer();
console.log("login ...");
AuthServerProvider.login(credentials).then(function (data) {
// retrieve the logged account information
Principal.identity(true).then(function(account) {
// After the login the language will be changed to
// the language selected by the user during his registration
$translate.use(account.langKey).then(function(){
$translate.refresh();
});
deferred.resolve(data);
});
return cb();
}).catch(function (err) {
this.logout();
deferred.reject(err);
console.log("erreur login !");
return cb(err);
}.bind(this));
return deferred.promise;
},
告诉我你是否需要更多代码。
上下文是:
1)我需要调试这张票。
2)我没有编写任何此Web应用程序的代码(特别是前端部分)
3)我几乎没有AngularJS的知识(只是理论上一点点)。
我希望你能帮我解决我的第一张票:)。*
答案 0 :(得分:0)
Aren你在这里的陈述末尾错过了一个括号和一个额外的括号:
}).catch(function (err) {
this.logout();
deferred.reject(err);
console.log("erreur login !");
return cb(err);
}.bind(this));// <-- missing parenthesis
应该是这样的:
}).catch(function (err) {
this.logout();
deferred.reject(err);
console.log("erreur login !");
return cb(err);
}).bind(this);
当您怀疑在不知情的情况下发生的变化时,您可以尝试的其他事项是使用$watch
监控变量更改:
$scope.countChange = 0;
$scope.$watch('authenticationError', function(newValue, oldValue) {
$scope.countChange = $scope.countChange + 1;
console.log('Change count :',$scope.countChange , ' New Value =', newValue );
});