路线导航在 Angular 9 中不起作用

2024-01-09

我正在我的角度应用程序中开发登录和主页组件。

登录服务正在验证用户的用户名和密码。

成功登录后,应将用户重定向到主页。

但路由器重定向无法正常工作。

登录组件

import { Router } from '@angular/router';
import { Component, OnInit } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';

import { User } from 'src/app/shared/models/user';

import { AuthService } from '../services/auth.service';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html'
})
export class LoginComponent implements OnInit {

  userName: FormControl;
  password: FormControl;
  loginFormGroup: FormGroup;
  loginError: boolean;
  errorMessage: string;
  messageString: string;

  constructor(private router: Router, private authService: AuthService) { }

  ngOnInit() {
    this.userName = new FormControl("", [Validators.required]);
    this.password = new FormControl("", [Validators.required]);
    this.loginFormGroup = new FormGroup({
      userName: this.userName,
      password: this.password
    });
  }

  login() {
    this.loginError = false;
    if (this.loginFormGroup.valid) {
      let user: User = new User();
      user.userId = this.userName.value;
      user.password = this.password.value;
      this.authService.login(user)
        .subscribe(res => 
        {
          console.log(res)
          this.router.navigate(["home"])
          console.log("res")
        },
        error =>
        {
          console.log(error)
        });
    }
  }
}

and 登录服务

import { Injectable } from "@angular/core";
import { Router } from "@angular/router";
import { Observable } from "rxjs";
import { share } from "rxjs/operators";
import { environment} from 'src/environments/environment';
import { HttpClient, HttpParams, HttpHeaders} from "@angular/common/http";
import { User } from 'src/app/shared/models/user';

@Injectable({ providedIn: "root" })
export class AuthService {
  user: User;
  resp=401;

  get userDetail(): User {
    return this.user;
  }

  constructor(
    private router: Router,
    private http: HttpClient
  ) {
  }


  login(user: User): Observable<any> {

    var formData = new FormData();
    formData.append("userId", user.userId);
    formData.append("password", user.password);

    return this.http.get<any>(url+"Validate_Login_User",{
      headers: new HttpHeaders(),
      params: new HttpParams().set("User_Id","user.userId")
    })

  }

}

routes

import { NgModule } from "@angular/core";
import { Routes, RouterModule } from "@angular/router";

import { AuthGuard } from "./authentication/services/auth.guard";

import { LoginComponent } from "./authentication/login/login.component";
import { LayoutComponent } from "./shared/components/layout/layout.component";
import { PageNotFoundComponent } from "./shared/components/page.not.found.component";
import { MenuComponent } from './menu/menu.component';

const routes: Routes = [
  { path: "login", component: LoginComponent },
  {
    path: "home",
    component: HomeComponent,
    canActivate: [AuthGuard],
    children: [
      {
        //childroutes
      },
      {
        //childroutes
      },
    ],
  },
  { path: "**", component: PageNotFoundComponent },
  { path: "Menu", component: MenuComponent}
];

@NgModule({
  imports: [
    RouterModule.forRoot(routes, {
      onSameUrlNavigation: "ignore",
      useHash: true,
    }),
  ],
  exports: [RouterModule],
})
export class AppRoutingModule {}

控制台登录登录组件

即使控制台打印成功,路线导航也没有发生,并且仍在登录页面中


尝试这个。

 this.router.navigateByUrl('/home');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

路线导航在 Angular 9 中不起作用 的相关文章

随机推荐

  • RxJava 和 Kotlin 中的大括号和普通括号有什么区别

    我不明白使用 RxJava 时 Kotlin 中的大括号和普通括号之间的真正区别 例如 我有以下代码 它按预期工作 someMethodThatReturnsCompletable andThen anotherMethodThatRetu
  • 使用 golang 从表中创建一棵树?

    我想用桌子制作一棵树 表格如下 OrgID OrgName parentID A001 Dept 0 th top A002 subDept1 A001 A003 sub subDept A002 A006 gran subDept A00
  • Bootstrap:将 div 从一列移动到另一列,移动设备的订单计数

    div class row div class col lg 7 div block1 with IDs and classes div div block2 with IDs and classes div div div class c
  • Selenium 错误:元素在点(X,Y)处不可点击,其他元素将收到点击

    我正在使用 python 和 selenium 在this https steemit com steem cheolwoo kim what is steemit我想点击的链接Reply添加评论 元素在点处不可点击 933 9500122
  • 如何在没有 http 服务器的情况下使用 file:// url 从 Chrome 使用文件系统访问 API

    我想在我的计算机上从 Chrome 打开一个 html 文件 而不需要 http 服务器 并且我希望 HTML 文件中的 JavaScript 能够读取和写入本地文件系统中的文件 并浏览目录 如何使用文件系统 API 执行此操作 https
  • 未找到框架 GoogleDataTransportCCTSupport

    我收到 框架未找到 GoogleDataTransportCCTSupport 错误pod update 我尝试过许多干净的构建文件夹和项目 但它仍然留在那里 我应该怎么办 转到您的项目目标Build Settings gt 搜索Googl
  • 我如何在 Javascript 中操作这个数组来进行这种错误检查?

    我怎样才能让Javascript检查一个数组并确保在逗号分隔数组的每个元素之后没有提交错误 例如 用户可以形成一个数组 其中连续两个逗号分隔一个元素而不是一个逗号 不仅仅是逗号 任何其他错误的输入 var cars Saab Volvo B
  • 如何比较两个 numpy 数组并通过调整将缺失值添加到另一个数组

    我有两个不同维度的 numpy 数组 我想将较大数组的额外元素添加到较小数组中 只有第 0 个元素和第 1 个元素应指定为 0 例如 a 2 4 4 5 8 9 7 5 b 2 5 4 6 将缺失的元素添加到 b 后 b 将变为如下 b 2
  • ZonedDateTime 和 OffsetDateTime 有什么区别?

    我已阅读文档 但我仍然不知道何时应该使用其中之一 OffsetDateTime https docs oracle com javase 8 docs api java time OffsetDateTime html ZonedDateT
  • Eclipse 3.4.1 - 如何在构建项目时在控制台中查看编译器输出

    我遇到了一个看起来非常烦人的问题 在 Eclipse 中编译项目时 我看不到显示 Java 编译器调用和构建结果的控制台 如 NetBeans 中一样 例如 如果我将现有项目导入 Eclipse 并调用 Project gt Build P
  • 对 mscorlib 参考感到好奇

    我很好奇mscorlib不同项目模板中的参考 当我创建WPF项目时 我找不到mscorlib参考文件夹中的文件 我认为它是默认引用的 当我创建Silverlight项目时 我可以在文件夹中找到它 它链接到 Silverlight 框架 然后
  • Oracle TNS 权限被拒绝 *

    我在用着 CentOS 6 7 Zend 1 2 15 使用 oci8 使用 instantclient 11 2 x64 PHP 5 4 45 尝试连接到 Oracle Oracle 数据库 10g 版本 10 2 0 4 0 已检查凭据
  • 如何在redis中搜索哈希键?

    我使用哈希键来存储用户详细信息 例如 hmset user 1 user name lee age 21 hmset user 2 user name david age 25 hmset user 3 user name chris ag
  • docker 本地卷名称的无效字符

    几天前 我在我的新笔记本电脑上安装了 docker 我已经使用 docker 一段时间了 并且非常了解其基础知识 然而 由于某种原因 我不断遇到同样的问题 我希望这里有人可以帮助我 在我的 Windows 10 家庭笔记本电脑上安装 Doc
  • 包含两个以上的 JQuery 库会产生问题

    我包括这些 JQuery 库 src JQuery jquery 1 4 2 min js src JQuery jquery ui 1 8 6 custom min js src JQuery menu login js src GjQu
  • 覆盖给定起始节点的所有边的算法

    我正在与朋友一起开发游戏算法 但我们陷入了困境 目前 我们有一个循环无向图 我们正在尝试找到从起始节点 S 开始覆盖每条边的最快路径 我们不是在寻找游览 可能会有重复的边缘 关于算法或近似值有什么想法吗 我确信这个问题是 NP 困难的 但我
  • 用 Dafny 证明 BFS 的终止

    我试图用 dafny 证明 BFS 的一些性质 但到目前为止我甚至无法证明终止 算法的进展是由以下事实保证的 一旦节点被着色false 访问过 它将not有颜色true again 尽管如此 我还是很难将这个事实转化为正式的达夫尼decre
  • 从 Sql 作业运行 SSIS 包的权限问题

    我有一个 SSIS 包部署到 Sql Server 2008 该包在 BIDS 以及存储包目录中的服务器中运行良好 一旦我将此包绑定到 sql 作业 我就开始看到从 SSIS 包中访问特定文件的权限问题 因此 通过我的研究 我发现使用代理帐
  • 存储库与 DAO(再次)

    一般来说 这个背景故事并不重要 只是为了解释下面的代码 服务器处理用户和用户组 用户组能够 发现 地点 目前这些地点完全来自 Google Places API 目前的实施 目前 我有很多JpaRepository对象 我称之为存储库 在我
  • 路线导航在 Angular 9 中不起作用

    我正在我的角度应用程序中开发登录和主页组件 登录服务正在验证用户的用户名和密码 成功登录后 应将用户重定向到主页 但路由器重定向无法正常工作 登录组件 import Router from angular router import Com