2017-02-22 15 views
0

Angular2とSPAの開発にはまったく静かなので、愚かな質問の場合は申し訳ありません。Angular2 Appイベントが発生した後にリロードする

私はチュートリアルに従っています。いくつかのコンポーネントが使用され、1つの要素をクリックすると、他のコンポーネントによって消費されたイベントが放出されます。次のような方法が

onSelect(event) { 
event.stopPropagation(); 
console.log("Emitting event in recipe-item.component"); 
//this.recipeSelected.emit(this.recipe); 
} 

と呼ばれ、それぞれの構成要素で

<a href="" class="list-group-item clearfix" (click)="onSelect()"> 

私は事をデバッグしようとしていたので、私は、意図的に最後の行をコメントアウト。通常、イベントは放射され、消費されます。しかし、ログエントリの直後に、Appがリロードされます。コンソールのクロムには「[url]にナビゲートしました」と表示されます。

誰でも私にこれを解決するためのヒントを与えることができますか?

よろしくお願いいたします。

+0

私の推測がある、ということをあなたは何とか再ロードを引き起こすフォーム提出を引き起こしますが、それは伝えるのが難しいです詳細な情報なし。 –

+0

コンソールログにエラーがないか確認してください – pixelbits

+0

私はコンソールログを保存していますがエラーはありません。 私はそのフォーム提出物について考えました。しかし、フォームは定義されていません。 – Shumachine

答えて

4

href = ""を削除すると、効果があります。あなたはページにリダイレクトして、実際にページをリロードしています。角2は角度2のルータのみを使用する必要があります。

ですから、次のHTMLコードを持っています:

<a class="list-group-item clearfix" (click)="onSelect()"> 
+0

素晴らしい!ありがとう! – Shumachine

0

代わりのstopPropagation()あなたがpreventDefault()を使用するか、falseを返す必要があります:

onSelect(event) { 
    event.preventDefault(); 

    console.log("Emitting event in recipe-item.component"); 
    this.recipeSelected.emit(this.recipe); 
} 

または

(click)="onSelect();false" 
関連する問題