假设我在后端 API 中定义了以下常量:
User::USER_ROLE_NORMAL; // Equal to 0
User::USER_ROLE_ADMIN; // Equal to 1
在我的后端,我现在可以进行以下比较:
if($user->role == User::USER_ROLE_NORMAL)
当我必须在前端应用逻辑时,最佳实践是什么? (其中这些常量未知)
在前端硬编码数字感觉不对,像这样:
if(ajaxData.role == 0)
对于上下文:我需要在前端应用逻辑来改变布局
最佳答案
由于前端和后端逻辑不一定(而且不应该)耦合,我认为最好的方法是在前端代码中定义相同的常量。请记住,前端代码应始终与 API 规范保持一致。
方式你做这件事取决于你(可以找到很多不错的选择)。
一个(简单的)方法可能是使用一些全局变量或使用某种服务(如果您使用的是某种框架)。
类似于:
const role {
USER_ROLE_NORMAL: 0,
USER_ROLE_ADMIN: 1,
};
然后您可以按如下方式使用它们:
if(ajaxData.role == role.USER_ROLE_NORMAL) {}
另一个选项(不太常用)是您可以在后端 API 中创建一个服务,为前端提供这些值以供使用。因此,在前端代码可以使用任何与 Angular 色相关的值(例如)之前,必须向后端发出请求以获取这些常量值并将其保存在前端以便在未来的操作中使用它。
关于javascript - 在前端和后端使用常量整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51932589/