web-dev-qa-db-de.com

Angular 2 Weiterleitung per Klick

Wie erstelle ich eine einfache Weiterleitung durch Klicken auf eine Schaltfläche in Angular 2? Schon versucht:

import {Component, OnInit} from 'angular2/core';
import {Router, ROUTER_PROVIDERS} from 'angular2/router'

@Component({
    selector: 'loginForm',
    templateUrl: 'login.html',
    providers: [ROUTER_PROVIDERS]
})

export class LoginComponent implements OnInit {

    constructor(private router: Router) { }

    ngOnInit() {
        this.router.navigate(['./SomewhereElse']);
    }

}
12
TeodorKolev

Sie können die Ereignisunterstützung von Angular2 nutzen:

@Component({
  selector: 'loginForm',
  template: `
    <div (click)="redirect()">Redirect</div>
  `,
  providers: [ROUTER_PROVIDERS]
})
export class LoginComponent implements OnInit {
  constructor(private router: Router) { }

  redirect() {
    this.router.navigate(['./SomewhereElse']);
  }
}
24

Ich würde es mit Methodenparametern dynamischer gestalten

Importieren Sie den Winkelfräser

import { Router } from '@angular/router';

Erstellen Sie eine Schaltfläche mit Klickereignis

<div (click)="redirect(my-page)">My page</div>

Erstellen Sie eine Methode mit einem Seitennamen-Parameter

redirect(pagename: string) {
  this.router.navigate(['/'+pagename]);
}

Wenn Sie darauf klicken, sollte der Router zur richtigen Seite weiterleiten

11
0x1ad2

Ich würde sagen, verwenden Sie die Variable routerLink und platzieren Sie sie über dem Tag a (Anker)

<a [routerLink]="['./SomewhereElse']">Redirect</a>

Sie müssen auch ROUTER_PROVIDERS von providers entfernen und in die Bootstrap-Abhängigkeit aufnehmen und dann ROUTER_DIRECTIVES in der Direktive-Option der Komponente hinzufügen, um die routerLink-Direktive für HTML zu verwenden. Stellen Sie sicher, dass RouterModule mit seiner Route in das Main App-Modul eingefügt wurde.

11
Pankaj Parkar

Versuchen Sie es mit routerLinkon

 <button type="button"  [routerLink]="['/edit']">Edit</button>

Mehr Info

7
atish shimpi

window.location.reload (); macht den Trick

0
java1977