2017-09-04 163 views
0

我有路由通过我的Angular web-app中的菜单设置。菜单上有routerLinks建立像下面的主页链接:角度4功能,调用路由

<a routerLink="home"> 
      <button md-menu-item> 
       <md-icon class="material-icons"> home </md-icon> 
       <span> Home </span> 
      </button> 
     </a> 

的app.router包含:

export const router: Routes = [ 
    { path: '', redirectTo: 'home', pathMatch: 'full'}, 
    { path: 'home', component: HomeComponent }, 
]; 

我想有一个重定向到一个查询表格组件的按钮,是不是在正常菜单中可用,但在组件中的按钮上放置链接似乎不起作用。为什么是这样?

对我来说,理想的做法是将一个函数放置在调用路由的组件的html元素中 - 这可能吗?

回答

1

如果我理解正确,那当然是可以的。

只需添加路由器到您的组件构造:

constructor(private router: Router) {} 

,然后你可以调用从你的函数Router类将点击按钮后,被称为导航功能,例如:

this.router.navigate(['home']); 

另一种可能性是将[routerLink]放在html标记中:

<a [routerLink]="['/home']">Go To Home</a> 

检查:

https://angular.io/guide/router

https://angular.io/api/router/Router

+0

的一个LINKWAY工作正常,但我更愿意理解第一种方法。我收到一条错误信息,说导航不可用。然后我导入路由器,但我的app.router只导入路由和路由器模块 - 有没有办法解决这个问题? – Davtho1983

+0

@ Davtho1983你能发表这个错误吗? – porgo

+0

好吧,奇怪的是,我似乎现在都有这两种方法 - 我必须犯了一个语法错误!谢谢你的帮助 :) – Davtho1983