2016-03-31 116 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文件就位,生命周期挂钩就会正确调用。