在组件或服务中使用 router.navigate 是最佳做法吗?

Is it best practice to use router.navigate in Components or Services?

我不知道 angular 背后的哲学,尤其是关于测试的哲学,足以知道我是否应该更喜欢在组件或服务中使用 router.navigate()

例如,假设您有一个 LogInComponent 来管理您的登录表单,还有一个 AuthService 来处理与服务器的对话。当用户成功登录时,您希望将他们从登录屏幕重定向到应用程序的主页。最好在 LogInComponentAuthService 中执行此操作?

绝对是组件,服务只应该带来你想要的数据,它不应该知道任何关于演示的信息,无论是单页应用程序,简单的静态页面,混合应用程序还是本机应用程序,更不用说如何您在它们之间导航,这样您以后可以更改它,并且可以重用整个服务包。