如何在Angular 2中单击某个按钮创建简单重定向?已经尝试过:
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']);
}
}
答案 0 :(得分:26)
您可以利用Angular2的事件支持:
import {Router} from '@angular/router';
@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']);
}
}
答案 1 :(得分:12)
我会使用方法参数
使其更具动态性导入角度路由器
import { Router } from '@angular/router';
创建一个包含点击事件的按钮
<div (click)="redirect(my-page)">My page</div>
使用pagename参数创建方法
redirect(pagename: string) {
this.router.navigate(['/'+pagename]);
}
点击后,路由器应该路由到正确的页面
答案 2 :(得分:11)
我会说使用routerLink
指令&amp;将其置于a
(锚)标记
<a [routerLink]="['./SomewhereElse']">Redirect</a>
您还需要从确保{Main}模块中已注入ROUTER_PROVIDERS
&amp;中删除providers
将它包含在bootstrap依赖项中,然后在component的directives选项中添加ROUTER_DIRECTIVES
以在HTML上使用routerLink
指令。RouterModule
及其路由
答案 3 :(得分:8)
答案 4 :(得分:0)
window.location.reload();
做到了
答案 5 :(得分:0)
在您的html文件中,此代码正确。
<button (click)="btnClick()">Cancel</button>
在您的component.ts文件中,紧接此代码。
constructor(private router:Router) { }
btnClick(){
this.router.navigateByUrl("/payment");
}