如何解决ng snotify 登录后不显示烤面包机
我正在构建一个 angular 11 示例应用程序,其中我实现了 ng snotify 以生成用于空登录(无凭据)、错误登录和有效登录的烤面包机。 ng snotify 烤面包机适用于无效的凭据,但它不适用于有效的登录凭据和空凭据,它有时会同时显示空凭据的烤面包机以及登录成功的烤面包机,这在技术上是不正确。 下面是代码文件以便更好地理解
login.component.ts
// @ts-ignore
import { Component,OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { CookieService } from 'ngx-cookie-service';
import { AuthService } from '../../services/auth.service';
import { ToastrService } from "ngx-toastr";
import { NgxSpinnerService } from 'ngx-spinner';
import { snotifyService } from "ng-snotify";
/*import {userInfo} from "os";*/
@Component({
selector: 'app-login',templateUrl: './login.component.html',styleUrls: ['./login.component.scss']
})
export class LoginComponent implements OnInit {
/*Properties*/
loading: boolean = false;
action: string = '';
private index: number = 0;
constructor(public authService: AuthService,private router: Router,private cookieService: CookieService,private toastr: ToastrService,private spinner: NgxSpinnerService,private snotifyService: snotifyService) {
}
ngOnInit() {
}
signIn($event: any,email: string,pass: string): void {
this.loading = true;
const data = {
userName: email,password: pass
};
if (data.userName === '' || data.password === '') {
this.loading = false;
this.snotifyService.warning('Username & Password cannot be empty','',{
timeout: 7000,showProgressBar: false,cloSEOnClick: false,pauSEOnHover: true
});
$event.preventDefault();
} else {
this.authService.logIn(data).subscribe(response => {
if (response.isValid == true) {
this.cookieService.set('username',response.username);
this.cookieService.set('password',response.username);
this.cookieService.set('userId',response.id);
this.cookieService.set('isLoggedIn',response.isValid);
this.snotifyService.success('Logged in successfully!',{
timeout: 7000,pauSEOnHover: true
});
this.router.navigateByUrl('/db');
this.loading = false;
} else {
this.loading = false;
this.snotifyService.error('Invalid Username or Password !',pauSEOnHover: true
});
}
},error => {
this.loading = false;
});
$event.preventDefault();
}
}
}
请问有什么解决办法吗?
解决方法
您导航到另一个页面,因此您基本上不会“看到”成功通知(它只是在进行重定向后快速发生)。
this.router.navigateByUrl('/db');
您可以通过订阅其他页面或仅在 /db 启动时(登录时 - 重定向和登录组件启动后(使用 afterViewInit)进行通知)来实现。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。