@NgModule({
declarations: [
MainComponent
]
})
export class MainModule {}
@Component({
//...
providers: [ CarService ]
})
export class MainComponent {}
当MainComponent
被销毁时,这将销毁CarService
实例。
这并不是事实。转移到其他模块并不意味着之前的惰性加载模块会被销毁,它仍然存在。这就是为什么当我们再次尝试导航到该模块时,Angular不会请求该惰性加载模块的代码块。
服务也将保留在内存中。只有当用户手动重新加载应用程序时,服务才会重新初始化。
您需要在将用户导航到/login
路由之前手动清除缓存。最理想的做法是在您要离开的组件的ngOnDestroy
中执行此操作。