2017-04-18 10 views
0

Angular 2のコンポーネントのテンプレートでJQueryを使用するにはどうすればよいですか?Angular 2のテンプレートでjqueryを使用するにはどうすればよいですか?

は、このエラーを返すコンポーネント使用

<p (click)="$('#myModal').modal('show');">show</p> 

のテンプレートで

import { Component } from '@angular/core' 
import * as $ from 'jquery'; 
... 

は例外TypeError

ERROR :CO $関数{}はない

+0

可能性のある複製http://stackoverflow.com/questions/30623825/how-to-use-jquery-with-angular2 – warl0ck

答えて

1

ドンあなたがそれを必要としないなら、角度の枠組みを通らない。 (click)参照を含む角度成分に基づいて、そのコンポーネントのインスタンスとして$を解決するように角度試みを解決している使用しようとすることにより

<p onclick="$('#myModal').modal('show');">show</p> 

また、コンポーネントでメソッドを作成してjqueryに呼び出す必要があります。このメソッドは、(click)を使用してテンプレートから呼び出されます。

+0

はい角度2を使用する必要があります – alehn96

+0

@ alehn96 - 上記のコードではありません。 '$( '#myModal')。modal( 'show')'は、 'angular2'に固有のものを使います。 – Igor

+0

ありがとう、私はコンポーネントでメソッドを作成する必要があり、イベントが呼び出されたら、jqueryを使うだけですか? – alehn96

0

jqueryと通信するカスタムディレクティブを作成します。

@Directive({selector:'[trigger]'}) 
export class TriggerModelDirective { 

    constructor(private el: elementRef) { 
    } 

    onInit() { 
    this.el.nativeElement.addEventListener(()=> { 
     $('#myModal').modal('show'); 
    }); 
} 

AngularのremoveEventListenerを追加し、$を不透明トークンにラップする必要がある場合もあります。

+0

ありがとう、私はその$(this.elRef.nativeElement).find( '#myModal')で解決します。コンポーネント内のelRef:ElementRef – alehn96

関連する問題