Angular: 重定向后重新加载页面

5

我有一个函数可以重定向到另一页,我希望在重定向后,被重定向的页面也能重新加载。

我想在重定向到登录页面后重新加载该页面。使用 'window.location.reload()' 可以重新加载当前页面,但不是登录页面。如何重新加载特定页面?

homeComponent.ts

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { FormGroup, FormBuilder, FormControl, Validators, Form } from '@angular/forms';
import { LoginComponent } from '../authentification/login/login.component';



@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.scss']
})



export class HomeComponent implements OnInit {
  
  ngOnInit(): void {
   
  }

  constructor(private router: Router) { }


   redirection(){
    this.router.navigate(['/login']);
   }

  
}
2个回答

11

为什么不使用?

redirection(){
   window.location.href="yourpagedomain/login"
 } 

它将加载页面。


对于任何重定向到登录页面的组件都适用吗?如果我有另一个组件home2,我想重定向到登录页面,但不重新加载登录页面怎么办?此外,您能否给我方法1 'window.location.href="your login link"' 的函数redirection()的整个代码?非常感谢您的帮助,朋友 :) - firas1
1
然后在home2组件中,您将使用this.router.navigate(['/login']); - mr. pc_coder

1
在您的登录页面上,您可以捕获导航事件,如果为真,则可以重新加载表单。希望这会对您有所帮助:
在您的登录页面上:
旧:错误代码
export class LoginPage implements OnInit {
  
  constructor(private router: Router) {
   router.events.subscribe(val => {
      if (val) {
        this.refreshForm(); // Refresh your form
      }
    });
  }
 
  ngOnInit(): void {

  }

}

编辑:此代码有效:

export class LoginPage implements OnInit {

  constructor(private router: Router) {
   router.events.pipe(
      filter((events: RouterEvent) => events instanceof NavigationEnd),
    ).subscribe((val) => {
      if (val.url === 'LoginPage Url') { // Fill with your loginPage Url (eg. /tabs/tab1)
        this.refresh(); // Refresh your form
      }
    });
  }

  ngOnInit(): void {
  }
}

你在代码中找到重定向函数了吗?我没看到 :/ - firas1
适用于任何重定向到登录页面的组件?如果我有另一个名为home2的组件,我想重定向到登录页但不重新加载登录页怎么办? - firas1
它只适用于此代码所在的页面。(对不起我的英文写作) - Bertrand PETIT
我理解你的意思,Bertrand。但是如果我有另一个组件home2,它也有一个导航事件,但不需要重新加载页面,在这种方法中,它将重新加载页面,因为它捕获每个导航事件,即使没有必要重新加载。 - firas1
我更新了我的答案,加入了新的代码!我在我的应用程序上测试过了,一切正常。 - Bertrand PETIT
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接