2017-09-04 1 views
0

私はAngular web-appのメニューからルーティングを設定しています。 app.routerが含まれていルート4を呼び出す関数です。

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

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

私ではありませんお問い合わせフォームにリダイレクトコンポーネントでボタンを持ちたいメニューは、下のホームリンクのように設定しrouterLinksを持っています通常のメニューで使用できますが、コンポーネント内のボタンにリンクを置くことは機能していないようです。どうしてこれなの?

私が行うべき理想的なことは、ルートを呼び出したコンポーネントのhtml要素に関数を配置することです - これは可能ですか?

答えて

1

これを正しく理解すれば、もちろん可能です。

ちょうどあなたのコンポーネントのコンストラクタにルータを追加します。

constructor(private router: Router) {} 

をして、あなたは、たとえば、ボタンをクリックした後に呼び出されますあなたの関数内のルータクラスから機能をナビゲートする呼び出すことができます。

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

もう1つの方法は、[routerLink]をhtmlタグに配置することです。

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

これを確認します。

https://angular.io/guide/router

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

+0

linkwayが正常に動作しているが、私は最初の方法を理解することを好むだろう。ナビゲートが利用できないというエラーが表示されます。その後、私はRouterをインポートしますが、私のapp.routerはRoutesとRouterModuleしかインポートしません。 – Davtho1983

+0

@ Davtho1983このエラーを投稿できますか? – porgo

+0

奇妙なことに、私は両方の方法が今働いているようです - 私は構文エラーを作成したに違いありません!ご協力いただきありがとうございます :) – Davtho1983

関連する問題