ngAfterViewInit无法在root应用程序组件中运行

时间:2016-01-07 20:03:34

标签: angular

关注this question我遇到了另一个问题'。 基本上我有一个HTML主题,它需要在$document.ready()中运行许多初始化代码(ngAfterViewInit代码)。我的问题是,当我把它放在我的app.ts文件(根应用程序组件)中时,这不起作用,所以我不得不把它全部放到我创建的每一个组件中,这不是&#39 ;似乎没错。

我想知道我是否遗漏了一些明显的东西,或者在组件的其余部分加载之前app组件是否实例化了?

app.ts

import {Component, ViewEncapsulation, AfterViewInit} from 'angular2/core';

export class AppCmp implements AfterViewInit {

  ngAfterViewInit() {
     //All my document ready code here, which doesn't work
  }
}

修改 我会尝试更具体一点。

相关代码可以是seen here。基本上所有代码都实例化并运行我的模态,视差,下拉等。等等。所有需要在角度初始化视图后运行的javascript并将其命名为ngAfterViewInit。如果我将所有代码复制粘贴到我ngAfterViewInit中的app.ts,那么没有任何工作,模态,视差,手风琴等等。但是如果我将相同的代码放入特定的组件中(例如home.ts })然后它工作得很好。希望这澄清。

假设我想在页面完全加载时运行以下命令:

setTimeout(function() {
  $('.background-image-holder').each(function() {
    $(this).addClass('fadeIn');
  });
}, 200);

在app.ts中无法运行,但在home.ts中运行正常

0 个答案:

没有答案