Angular Directive不会触发Lifecycle Hooks

时间:2017-09-28 03:52:31

标签: angular angular2-directives

我想知道以前是否有人经历过这个:

CustomDirective.ngAfterContentInit没有被解雇。

我有一个问题,routerLinkActive在刷新页面或手动访问页面时没有将active类添加到链接中:

<div fxLayout="row" fxLayoutAlign=" stretch" fxLayoutGap="5px">
  <a fxFlex fxLayoutAlign="center center"
     routerLinkActive="active"
     [routerLink]="['profile']">Profile</a>
  ...
</div>

我试图找出正在发生的事情,放弃与flex-layout指令的冲突,将其应用于不同的HTML元素,我甚至构建了一个带有基本应用程序的plunker来报告问题,{{1}工作得很好,所以这不是一般性的问题,也许只是复杂的应用程序,我不知道。

我选择fork指令以便能够在内部调试它并在我意识到routerLinkActive未被触发时卡住了,实际上只有ngAfterContentInitngOnInit和{ {1}}被解雇了。

这意味着,当提取ngDoCheck时,我无法通过ngOnChanges轻松检测到它们,而这对核心@ContentChildren来说是一个问题。

我在同一个组件中有另一个指令,触发所有生命周期挂钩,所以我迷失了为什么ngAfterContentInit不会触发所有这些挂钩的假设。我注释掉了很多代码,但仍然没有用!有时甚至routerLinkActive没有被解雇!所以我闻到了一些冲突导致myForkedLinkActive无法正确触发挂钩。

在此期间我唯一的选择是使用ngOnChangesView标记来检测ngDoCheck检索子项并模拟对initialized的调用的时刻。

有人知道会发生什么事吗? 提前谢谢!

0 个答案:

没有答案