簡體   English   中英

Angular2路由器和OnInit

[英]Angular2 Router and OnInit

我最近開始在Angular2路由器上遇到困難。 問題是router-outlet之外的組件將調用其ngOnInit方法。 但是router-outlet內的組件則不會。

我以前也曾在Angular2路由器上遇到過問題 但是這個問題似乎與外部Javascript代碼有關,而這個問題顯然與Angular2生命周期掛鈎有關。

我整理了一些Plunker,但無法重現這些問題。 這就是問題所在。 事實證明,我發現了問題所在(在我讀過的其他內容中也暗示了這一點)。 因此,我將其發布為問題,並附上我所找到的答案,以防其他人遇到此問題。

如前所述,我會看到Angular2路由器的其他問題。 現在,我已對此進行了更多研究,我認為它們之間是相關的。

我在這里略微扭轉了這種趨勢,並且沒有使用SystemJS。 相反,我只是在做一個簡單的webpack構建。 這似乎是問題所在。 我還看到了其他一些問題和stackoverflow問題,其中提到了script標記順序的重要性。 嗯,由於webpack可以直接控制這些事情,所以我並沒有真正注意。 但是事實證明這很重要。

我目前正在從webpack生成bundle.js文件。 但是我不感激的是,您還必須找到一種在應用程序中包含angular2-polyfills.js方法。 我有點假設它將以某種方式包含在webpack ,但事實並非如此。

我嘗試做的第一件事就是將其簡單地添加到index.html的<head>部分中。 這會將其加載到webpack之外,這似乎已經足夠。 我還發現我可以添加以下內容:

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

...在我的webpack入口點。

angular2-polyfills.js文件后,即可正確調用生命周期掛鈎。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM