2017-03-22 16 views
0

は(スタイリングを無効にしようとするリンクのクラスを作成しても解決しませんでした)スタイルを変えています。角度2材質にリンクとしてMD-カードを作成

動的にクリック可能なリンクとして(例えば、ngFor)カード(この場合はMD-カード)を作成するための正しい方法は何ですか?すなわち

、各カードがクリック可能であり、別のビューへのリンク。あなたは、クリックイベントを使用して、コンポーネント内から移動することができますrouterLinkを使用する必要はありません場合は

答えて

2

例コンポーネント:

import { Component, OnInit } from '@angular/core'; 
import {Router} from '@angular/router'; 

interface Thing{ 
    name:string; 
    route:string; 
} 

@Component({ 
    selector: 'app-things', 
    template: ` 
     <md-card *ngFor="let thing of things" (click)="navigate(thing)"> 
      Simple card 
     </md-card> 
    ` 
}) 
export class ThingsComponent implements OnInit { 
    things: Thing[]; 

    constructor(
     private router: Router 
    ) { 
     //todo initialize things 
    } 

    navigate(thing:Thing){ 
     this.router.navigate(thing.route); 
    } 
} 
+0

クール!ありがとう。それはそれをクリアするのに役立ちました。私は1つのフォローアップを持っています。私はテンプレートに入れようとしていますが、リンクがHTMLから来るように指定する方法がわかりません。補間はこれでは機能しませんが、それ以外の場合は補間が行われます。 beachCode

+0

好奇心が強いのですが、なぜクリックイベントの '{{}}'バインディングですか?リダイレクトリンクがコンポーネントで使用できる場合は、単に(クリック)= "redirect()"を使用しないでください。コンポーネントのリダイレクト機能でredirectLinkプロパティを使用してください。 'this.router.navigate(this.redirectLink);' – wickdninja

+0

...私はそれを見逃したか分かりません。感謝!!すべて今働いている。 – beachCode

関連する問題