2017-03-15 7 views
1

次のコードでは、この2つのルートの間をルーティングしたときにngOnInit()という名前のhiddenを使用しました。しかし、 "* ngif"を使用した場合、ngOnInit()は呼び出されませんでした。なぜそれが起こったのだろうと思う。また、「[hidden]」がCSSと衝突する可能性がある場合は、「* ngif」にしたいと思います。"[hidden]"は動作しますが、Angular2のngOnInit()では "* ngIf"は機能しません。なぜですか?

<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と質問はinfoの2つのコンポーネントと子です。 私は '/ home'から '/ info/question'に行くと、ngOnInit()が呼び出されるので、ルートに何か関係があると思います。しかし、 '/ info/userinfo'から '/ info/question'に行くと、ngOnInit()は呼び出されません。

+0

これについては、[Angular]のドキュメント(http://angular.io)で説明しています。よく書かれているので、見てみることを強くお勧めします – Gab

答えて

2

falseに評価すると* ngIfはコンポーネントを作成しませんが、非表示にするとコンポーネントが非表示になりますが、作成されます。

関連する問題