2016-03-31 117 views
0

我最近開始對Angular2路由器有困難。問題在於router-outlet之外的組件將調用ngOnInit方法。但是在router-outlet內的組件不會。我想要previous issues with the Angular2 router as well。但是這個問題似乎與外部Javascript代碼有關,而這個問題似乎明顯是Angular2生命週期鉤子的一個問題。Angular2路由器和OnInit

我把一些Plunker的,但不能再現問題。這就是問題所在。事實證明,我找出了問題所在(並且在我讀過的其他一些內容中暗示了這一點)。所以我將這個問題作爲一個問題發佈,我將包括我發現的答案,以防其他人遇到此問題。

回答

0

正如我之前提到的,我會看到Angular2路由器的其他問題。現在我已經深入瞭解這一點,我認爲它們是相關的。

我在這裏略微反映了這個趨勢,並沒有使用SystemJS。相反,我只是做一個簡單的webpack構建。這似乎是問題所在。我在其中提到了script標籤訂單的重要性,還看到了其他一些問題和計算器問題。那麼,由於webpack直接控制這些東西遠離我,我沒有真正注意。但事實證明這很重要。

我目前正在從webpack生產bundle.js文件。但我不明白的是,你還必須找到一種方法在你的應用程序中包含angular2-polyfills.js。我有點認爲它可能以某種方式被webpack包含,但它不會。

我試過的第一件事就是簡單地將它添加到我的index.html的<head>部分。這將它加載到webpack之外,這似乎就足夠了。我還發現,我可以通過添加:

require('angular2/bundles/angular2-polyfills'); 

...在我的webpack入口點。

一旦angular2-polyfills.js文件就位,生命週期掛鉤就會正確調用。