【发布时间】:2016-12-17 08:01:40
【问题描述】:
这是一个最佳实践问题。
我有一个带有一些嵌套状态和视图的 Angular 应用程序。
当我的用户点击“退出”按钮时,它会附加到控制器函数,然后控制器函数会调用身份验证服务中的函数。然后,身份验证服务会调用服务器,并且需要将用户重定向到登录页面。
我对实际的“state.go('login')”应该在哪里进行了一些思考。
(1) 服务调用服务器,当调用完成时,服务将状态更改为登录。
这感觉很糟糕,因为在我看来,服务应该是一些提供数据或功能的静态实体,并与应用程序的其余部分分开。
(2) 控制器调用鉴权服务后改变状态为登录。
这似乎更好。无论如何,控制器已经附加了应用程序和标记。
(3) 服务发出我在 EVENTS.LOGOUT_SUCCESSFUL 等应用程序常量中定义的自定义操作,然后在根范围内监听该事件并在事件监听器中执行 state.go。
不确定这个,它使事情变得更复杂但看起来相当干净。
有什么想法吗?
【问题讨论】:
标签: javascript angularjs angular-ui-router