2016-11-08 7 views
2

私はang-cliで作成したangular2アプリケーションでいくつかのjQueryプラグインを使用しようとしています。Angular-cliとjQueryプラグイン

ドキュメントに記載されているように、私は必要なライブラリをnpmと、利用可能な場合にはタイプを使用してインストールしました。 その後、angular-cli.jsonにスタイルとスクリプトを追加しました。クロムデバッガを開くと、ライブラリが正しく読み込まれていることがわかります。

問題は、jQueryプラグインを使用しようとするたびに、「このメソッドは関数ではありません」というコンソールにjsエラーが表示されることです。

私はjQueryとfullcalendarを使って小さな例を作成しました。このGitHubリポジトリからフォークできるようになりました。

https://github.com/vmilitello/jquery-plugin

問題のみ($("#myItem").fullcalendar()又は$(".foo").steps()など)を実行するためのセレクタを必要とjQueryのプラグインで存在します。 Sweetalertのようなライブラリを使用する場合、問題は表示されません。

私は何かが不足していると確信していますが、実際にはそれを理解できませんでした。

ありがとうございます。 (あなたがしなかった場合)

答えて

1

は、あなたが手動タイピングのプラグインのために記述する必要が

npm install @types/jquery --save-dev 

をインストールします。

構造を作成します。index.d.tsよりも

/custom_typings 
/fullcalendar 
    /index.d.ts 

をのようなもの:tsconfig.json

"typeRoots": [ 
    "../node_modules/@types", 
    "../custom_typings" 
] 
+0

私の問題はタイプではありません。あなたが私のタイスクリプト・ファイルを書いている間、jQueryセレクターをキャストすることを避けるように勧めてください。基本的に( $( "#calendar"))。fullcalendar();の代わりに$( "#calendar")と書くことができます。しかし、これは私の質問にほとんど関係していません。私はGitHub上のブランチを更新して、この解決法が機能しないことを実証しました。とにかくありがとうございました。 – MilitelloVinx

+0

あなたの入力ファイルの名前はindex.d.tsでindex.tsではなく、jQuery関数はfullcalendarではなく、fullCalendarです。私はあなたのレポでそれを試してみました。 –

+0

ありがとう!私はgitter.imでいくつかの人と実際に遊んでいたし、問題も見つかった。ブランチを更新していただきありがとうございます!感謝します。私は他の人を助けることができることを望んで、そこに支店を残します。ありがとう! – MilitelloVinx

0

よりも

interface JQuery { 
    fullCalendar(options?: any): JQuery; 
} 

すべて正しい一つの小さなディテールのほかなしそれは動作していません。 としては最後の部分でhereを述べ、あなたはその後、$がそうでなければ、それは私のために動作しませんでした、グローバルになり、fullCalendar()機能が表示されます、あなたのコンポーネントに

declare var $:any 

を持っている必要があります。

関連する問題