2016-07-29 4 views
0

私はコンポーネントルーターを使用しており、ルーティング部はうまく機能しています。しかし、テンプレートがロードされたら(以前とは異なる)、JSを実行してテンプレートを変更する方法を理解することはできません。角型2コンポーネントルーター - 実行方法ビューコード

は例えば、私が実行したい:

$(window).load(function() { 
    "use strict"; 
    $(".preloader").delay(350).fadeOut('slow'); 
}); 

をしかし、プリローダーのdivがロードされるまで、明らかにこれは実行できません。

これを行うためのベストプラクティスは何ですか?私はOnInitを使いこなしましたが、コントローラーにコードを変更しているUIが変わっているように感じました。

+1

Angularを使用する場合、jQueryを避けることをお勧めします:http://stackoverflow.com/questions/14994391/thinking-in-angularjs- if-i-have-a-jquery-background/15012542#15012542 –

+0

確かに、他の人のテンプレートを使っているので、jqueryを使わずに書き直すと少しの作業が必要です。 – Jelling

答えて

1

私は、cssアニメーションを試してみます。

リファレンスあなた.preloaderElementRefを使用して:

constructor(private _el: ElementRef) { 
    this.preloader = jQuery(this._el.nativeElement).find('.preloader'); 
} 

詳しい詳細はこちら:How to use jQuery with Angular2?

AfterViewInithttps://angular.io/docs/ts/latest/guide/lifecycle-hooks.html#!#afterview)で何かを行う350ミリ秒setTimeoutと変更クラスtransition(詳細https://stackoverflow.com/a/6943704/1267942

を持ちます

更新:角度2のRC4アニメーションはかなり良い形ですhttps://angular.io/docs/ts/latest/guide/animations.html(私はまだ試していません)

+0

ありがとうございます。この問題を抱えている誰かのために、当時はAfterViewInit()内からjqueryリファレンスを参照しました。 – Jelling

関連する問題