2016-07-29 53 views
0

我正在使用组件路由器,并且路由部分工作正常。但我无法弄清楚如何运行JS来修改模板,一旦模板已经加载(而不是之前)。Angular 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-如果我有一个jQuery的背景/ 15012542#15012542 –

+0

当然,但在这种情况下,我使用别人的模板,所以重写它没有jQuery会花费一些工作。 – Jelling

回答

1

我会说,尝试css动画。

参考您的.preloader使用ElementRef

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)做setTimeout为350毫秒,改变类的东西有transition(详情https://stackoverflow.com/a/6943704/1267942

更新:截至Angular 2 RC4动画形状相当不错https://angular.io/docs/ts/latest/guide/animations.html(我还没试过)

+0

谢谢。对于任何有此问题的人,我暂时在AfterViewInit()中使用了jquery引用。 – Jelling