根据angularjs中的用户角色显示自定义视图

时间:2016-12-24 18:30:43

标签: angularjs model-view-controller web user-experience

我想根据应用程序的用户显示不同的视图,例如,如果用户admin他可以看到所有控件,或者当它作为user时,他只能看到一个子集控件和UI,他可以执行有限的操作。

我想到的一个解决方案是将页面的角色信息作为JSON发送,但这需要我了解登录用户,所以基本上我可以先检查用户是否已登录是否通过cookie?如果不能,我只能加载登录页面的轻量级版本,并在用户登录后,我可以发送一个新页面,其中包含嵌入用户的个人资料信息。

我看到的另一种方法是我可以引导我的角度应用程序,然后检查登录状态,如果登录完成,然后通过JSON提供配置文件信息并更新视图,但我认为这将是缓慢且容易出错的。

我不知道什么是最佳/推荐的方法。

1 个答案:

答案 0 :(得分:1)

第一种方法似乎是这些方法中更好的方法。

第二种方法的问题是您向服务器发送了2个请求 - 一个用于登录,然后第二个用于获取用户角色/配置文件。如果您选择这种方法,那么根据您将如何实施它可能会遇到一些问题:

  1. 如果您在登录后更新用户界面,则必须确定应向用户显示的内容,因为您还不知道用户个人资料。即使您提出了一些最小权限UI,也会有另一个请求获取配置文件,这将再次刷新UI - 2个UI刷新可能会让用户烦恼。更不用说有2个请求可能会使您的网站变慢。
  2. 如果您决定在登录后不更新用户界面,但只有在获得用户个人资料后,仍然会延迟,因为您必须等待2个单独请求的响应。可能是网络速度慢的一个主要问题(考虑移动)
  3. 如果您使用的是第一种方法,那么您将解决上述问题。