对于下面的代码,我使用hidden,当我在这两个路由之间路由时,它叫做ngOnInit()。但是,当我使用" * ngif"时,从未调用过ngOnInit()。我想知道为什么会这样。另外,我想" * ngif"如果有可能,因为" [隐藏]"可以与CSS冲突。
<div class="container">
<div [hidden]="!(router.url == '/info/userinfo')">
<div class="catalog" >
<button [routerLink]="['/info/userinfo']"><h2>userinfo</h2></button>
</div>
<div [hidden]="!(router.url == '/info/question')">
<div class="catalog">
<button [routerLink]="['/info/question']"><h2>question</h2></button>
</div>
</div>
</div>
userinfo和question是两个组件和info的子项。 我猜它有与路线有关的东西,因为如果我从&#39; / home&#39;转到&#39; / info / question&#39;,将调用ngOnInit()。但是,如果我从&#39; / info / userinfo&#39;到&#39; / info / question&#39;,两个ngOnInit()都不会被调用。
答案 0 :(得分:2)
因为* ngIf在计算结果为false时不会创建您的组件,但隐藏只隐藏组件但仍然创建它。