2017-09-05 7 views
1

私はNG2でかなり新しく、スライドアップ/ダウンエフェクトにデフォルトのブートストラップ4ドロップダウンコンポーネントを追加しようとしています。角2、Jqueryを使用してブートストラップを操作する

ブートストラップのドロップダウンコンポーネントには、2つのJqueryリスナー$(el).on('show.bs.dropdown')$(el).on('hide.bs.dropdown')があります。そこで、このエフェクトを追加する命令を作成しました。

エラーは発生しませんが、影響はありません。しかし!!!デバッガのポイントで、ブラウザがフリーズしている間に、コンソールにコードをコピー/ペーストすると、動作します。だから私は本当に私のコードが正しいことを確信しているので、本当に不満ですが、なぜコード定義の中でうまくいかないのか分かりません。

PS:DOMレンダリングの問題かどうかを確認するためにsetTimeoutにラップしようとしましたが、動作しませんでした。私はNG2 Lifehooksもすべて試しました。

誰でもこの問題を解決するのに役立ち、私にこの奇妙な行動の理由を説明することができれば、とても感謝しています。

SPECS:

ブートストラップ4、角度4.3、jQueryの3.2.1

+0

あなたは、現在のエラーのほかにすべてを言っています!あなたはコンソール例外を投稿できますか?また、AfterViewCheckedの代わりにAfterViewInitを使用する必要があります。 – Fals

+0

エラーはありません。スライドは機能しません:/。私は/ '$(エル).on( 'show.bs.dropdown'、 (CB)=> {$ (エル).find( 'ドロップダウン・メニューを')ペーストコピーした場合()しかし。最初。停止(true、true).slideDown( 'fast'); }); $(EL).on( 'hide.bs.dropdown' (CB)=> { $(EL).find( 'ドロップダウンメニュー')。最初の())真、真(止めます。 slideUp( 'fast'); }); ' ブラウザがフリーズしているときのデバッグポイントです。それは動作するようになります –

+0

AfterViewInitは完全に読み込まれたビューをgarantします、そして、あなたはDOMを操作できるはずです。 – Fals

答えて

0

ああ、神様!

私はimport * as $ from 'jquery';とし、app.module.tsはディレクティブに含まれていないと考えました。でもそこ

は、まだ変な、module.tsまたは私directive.tsでのjQueryをインポートすると、私は信じている問題ではありません。とにかく、その時点でユーザー$メソッドを使用できると仮定していました。

関連する問題