Nei*_*eil 3 typescript angular2-routing angular
Per Angular ( https://angular.io/api/core/OnInit表示ngOnInit 在第一次检查指令的数据绑定属性之后被调用,并且在它的任何孩子被检查之前被调用。它被调用仅在指令实例化时一次。),
所以 ngOnInit 应该被调用一次,但如plunker所示(这是来自https://angular.io/tutorial/toh-pt5的副本),我只修改了 app/heroes/heroes.component.ts和 app/dashboard /dashboard.component.ts有 console.log
并且打开F12(开发者工具)时,控制台会在路由改变时重复显示日志。
我看看 为什么 ngOnInit 调用了两次?, Constructor 和 ngOnInit 的区别, Angular 2 App Component ngOnInit 在使用 iframe 时调用两次, ngOnInit 每次更改路由时调用
但不明白为什么每次都调用 ngOnInit。
console.log("ngOnInit in All Heroes");
console.log("ngOnInit InDashBoard");
Run Code Online (Sandbox Code Playgroud)
当路由改变时,组件被销毁,然后当路由变回时,组件再次初始化。
将此添加到DashboardComponent自己查看:
ngOnDestroy() {
console.log("ngOnDestroy InDashBoard");
}
Run Code Online (Sandbox Code Playgroud)