【问题标题】:router-link is not working properly?路由器链接不能正常工作?
【发布时间】:2018-04-13 10:33:33
【问题描述】:

我正在开发 Angular 2 Web 应用程序我是 Angular 2 的新手。我遇到了“路由器链接”问题,它无法正常工作。我创建了路由器文件,我还添加了组件文件的路径。

以下是我的代码: 这是路由器文件代码,我在网上也试过了,没用。请帮忙看看是哪个文件有问题。

路由器.ts:

import { Routes, RouterModule } from '@angular/router';
import { RegisterComponent } from './forms/register/register.component';
import { LoginComponent } from './forms/login/login.component';
const appRoutes: Routes = [
    { path: '' , component:LoginComponent},
    { path: 'signup', component: RegisterComponent},
    { path: 'login', component: LoginComponent},
    { path: '**', redirectTo: '' }
];
export const routing = RouterModule.forRoot(appRoutes);

register.component.ts:

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


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

        error = '';
    loading = false;
    myForm: FormGroup;

    events: {}[] = [];

  constructor(private fb : FormBuilder,
                private router : Router) { }

  ngOnInit() {
          this.myForm = this.fb.group({
        username: ['', Validators.required],
        email: ['', Validators.required],
        passwords: this.fb.group({
            password: ['', Validators.required],
            confirmPassword: ['', Validators.required]
            })
        });
  }

}

register.html 主要代码:

    <div class="form-header login-header">
      <h3>Hello User!!!</h3>
      <p>Already have an account? <a [routerLink]="['/login']">Login</a></p>
    </div>

点击登录链接时,它必须重定向到登录页面,但它不起作用,请帮助我。

【问题讨论】:

  • 您能否添加您在问题中遇到的错误?或者只是添加这个 url ['../login'] 而不是 ['login']
  • 我没有收到任何错误。问题是它没有重定向到登录页面。当我点击“登录" 这个登录没有重定向。
  • 使用 ../login 代替 /login 并检查
  • 这不起作用

标签: angular2-routing angular2-forms


【解决方案1】:

试试这个。

<a (click)="router.navigate(['/login']);"> </a>

在你的 html 中添加一个函数

<a (click)="goToPage('login')"> </a>

在你的组件中,调用函数

private goToPage(pageName: string) {
    this.router.navigate([`${pageName}`]);
  }

【讨论】:

  • 我的 app.router 文件有问题吗?
  • @phani 我已经编辑了答案,请看看它是否适合你
  • goToPage() 函数中的这个“pageName”是什么。
  • 我尝试使用 goToName 函数,它没有重定向但函数不起作用。
  • @phani,,, 函数名是“goToPage”,而不是“goToName”,,, 希望你给的正确.. "pageName" 是你要传递的页面的名称从函数 (click)="goToPage('login')"。这里 pageName 的值是 'login',因为登录值是从 html 传递的
猜你喜欢
  • 1970-01-01
  • 2019-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
  • 2021-07-26
  • 1970-01-01
  • 2018-06-01
相关资源
最近更新 更多