在Angular(前端)+ Java(后端)显示服务器控制的设计系统UI

design system with server controlled UI display in Angular(Front-end)+ Java(Back-end)

我正在构建一个单页网络系统,使用 Angular 作为前端,Java(Spring-Boot) 作为后端。该系统具有不同的角色,用户必须分配给一个角色。不同的角色可以做不同的操作。

为了简单起见:系统中有 2 个角色:超级用户和管理员。该系统中唯一的特征是具有 3 个属性的 Product:名称、retail_price、factory_price。超级用户可以添加产品并更新这些属性。管理员可以查看名称和 retail_price 但管理员无法查看 factory_price.Admin 也可以更新 retail_price 但无法添加产品。

为了在 Angular 中实现此功能控制,现在,我正在对 HTML 中的代码进行硬编码。在显示产品页面时,如果登录用户属于超级用户,则会显示添加按钮。当显示产品详细信息页面时,如果登录用户属于管理员,factory_price 将被隐藏并且名称字段将是只读的。

显然,这不是一个好方法,因为所有这些控制代码都在 HTML 中,每个人都可以阅读它并了解我们的逻辑。我正在寻找一些解决方案和指导,可以在服务器端和服务器中处理这种逻辑 return 无论浏览器需要显示什么,前端 (Angular) 只显示来自服务器的内容并摆脱所有这些控制逻辑如上所述。

另一个挑战是如何为不同的角色处理不同的HTML。例如,对于产品详细信息页面,我想为服务器端的不同角色准备 HTML 内容,一旦登录用户进入产品详细信息页面,angular 只需发送一个 Restful 调用并获取HTML 来自后端的内容并显示出来。然后客户端不需要任何逻辑,只需显示它即可。我应该为不同的角色使用不同的 HTML 模板吗?

您使用的协议是无状态的 HTTP。没有提到 Java(Spring,JSP Servlet)中的哪种技术用于后端。如果您有不同的用户并且他们具有不同的权限或角色,您需要在后端保持会话关联。当您可以获得登录用户时,您就可以提取该用户的角色。根据这些属性,您可以查询数据库并向客户端提供数据。