angular - 如何以角度创建“ngOnActive”生命周期挂钩?
问题描述
我希望当我的组件在主页上处于活动状态时调用生命周期挂钩。
它的登录页面。
当我的组件在主页上时,即处于活动状态时,我想查看我是否已经拥有以前登录的登录令牌,并且根据结果我想导航到不同的页面。
如果没有,是否有任何“ngOnActive”钩子,那么如何创建它?
还是有其他方法可以实现这一目标?
我的代码:
import { Component, OnInit } from '@angular/core';
import { NgForm } from '@angular/forms';
import {LoginService} from './login.service';
import {TokenService} from '../data/token.service';
import {Router} from '@angular/router';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css'],
providers: [LoginService]
})
export class LoginComponent implements OnInit {
constructor(private loginService: LoginService, private tokenService: TokenService, private router: Router) { }
ngOnInit() {
if (this.tokenService.getToken() !== '') {
console.log(this.tokenService.tk);
this.router.navigate(['/admin']);
}
}
onSubmit(form: NgForm) {
this.loginService.login(form.value.email, form.value.password);
}
}
解决方案
您可以使用一个技巧来做到这一点,那就是检测路线变化。
import { ActivatedRoute } from '@angular/router';
constructor(
private routerActive:ActivatedRoute
) {}
ngOnInit() {
this.routerActive.paramMap.subscribe(paramMap => {
if (this.router.url === "/yourURL") {
// ***** This runs whenever your page is displayed ******
}
})
}
推荐阅读
- java - Transactional Producer vs Just Idempotent Producer Java (Exception OutOfOrderSequenceException)
- anaconda - Anaconda 返回错误“系统找不到指定的文件”
- r - 如果 ==0,则仅替换指定列中的值
- html - 如何将填充放在图像边框之外?
- react-native - 更改状态以呈现不同的远程图像uri时如何停止图像闪烁?
- reactjs - Vega 图表仅在使用 React 时在悬停时呈现
- windows - DirectML、Windows Insider Preview 和 DX SDK 崩溃
- python - pymysql 警告:1300 无效的 utf8 字符串:'FFD8FF' 将图像上传到数据库时
- java - 使用 Graphics 在 JPanel 上绘制图像网格,然后多次将该 JPanel 添加到 JFrame 而不每次都重新绘制图像?
- c# - VS Code 中的“无法找到或打开 PDB 文件”