2017-01-11 7 views
0

私が作成したAngular2アプリケーションで問題が発生しています。ビューからクリックイベントを発生させたときにページがDOMの先頭にジャンプします。私は 'preventDefault()'イベントメソッドへのバインディングを使用しようとしましたが、これが起こるのを止めるが、これは私の問題を解決しません。あなたのことが起こっていると誰かに助言することはできますか?Angular2アプリケーションがクリックイベントのページの先頭にジャンプ

<div class='pagination-wrapper'> 
    <a class='page-link prev' [ngClass]="{'disabled': activePage <= 0}" (click)=pageBackward($event)>prev</a> 
    <a *ngFor='let pageLink of pages' class='page-link' [ngClass]="{'selected': activePage === pageLink}" (click)=jumpToPage(pageLink)>{{ pageLink + 1 }}</a> 
    <a class='page-link next' [ngClass]="{'disabled': activePage + 1 >= pages.length}" (click)=pageForward($event)>next</a> 
</div> 

や関連部品コード:

pageForward($event) { 
    $event.preventDefault(); 
    this.activePage++; 
    this.paginationChange.emit(this.activePage); 
} 

pageBackward($event) { 
    $event.preventDefault(); 
    this.activePage--; 
    this.paginationChange.emit(this.activePage); 
} 

jumpToPage(pageNum) { 
    this.activePage = pageNum; 
    this.paginationChange.emit(pageNum); 
} 

おかげ

は、ここに私のcode.The図です!

+0

'paginationChange.emit(...)'の原因は何ですか?それはいくつかのルータのnativationですか? –

+0

どのリンクが原因ですか? –

+0

paginationChange.emitメソッドは、EventEmitterを介して親コンポーネントに整数を渡します。 – devoncrazylegs

答えて

1

あなたは書く必要があります:HTMLで

<a href="#" (click)="someMethod($event)"></a> 

とtypescriptファイル内:あなたはtypescriptです内のメソッドで、不必要$文字を使用している

someMethod(event: any) { 
    event.preventDefault(); 
    //some code 
} 

。これにより、一部のブラウザでエラーが発生します(Firefox f.e)。さらに、最後のメソッドでevent.preventDefault()を使用しないでください。

私はあなたを助けてくれることを願っています。

+0

OPは既にそれを試しました。質問をチェックしてください –

+0

また、 'href = "#"'を追加すると、Angular2ルーティングで問題が発生します。 – devoncrazylegs

+0

@devoncrazylegsだから、どのブラウザを使っているのか教えていただけますか? –

関連する問題