javascript - AngularJS - 将登录用户与 JSON 数组中的用户匹配

标签 javascript jquery angularjs arrays json

因此,当用户登录时,我在用户本地存储中设置了一个 key ,其中包含他们刚刚登录的用户名。我需要做的是两件事 获取该值及其中的用户名,并搜索从 API 返回的用户名的 JSON 数组。如果本地存储用户名与 JSON 数组中的名称之一匹配,如果 JSON“status”键的值为“IN PROCESS”,则第二部分匹配,那么我需要运行一个简单的 jQuery 行。

这是从 API 返回包含用户名列表的 JSON 的 Controller :

function carDetails($scope, CarDetailService, API) {
  CarDetailService.getCar().success(function(details) {
    $scope.details = details;
  });
}

我需要运行的 jQuery 行是:

$('#takeAction').css('display', 'block');

enter image description here

如您在上图中所见,返回的数组是“All Current Approvers”,另一个键是“Status”。您可以看到本地存储中的用户名(或电子邮件)与“所有当前批准者”之一相匹配。即使现在数组中只存在一封电子邮件,应用程序中的其他电子邮件也会在数组中包含 5 个以上的用户名,这就是我需要搜索数组的原因。

我可以创建一个从本地存储获取用户名的变量:

var user = localStorage.getItem('user')

但从那里我不确定如何将它与“所有当前批准者”数组中的值匹配,检查以确保状态为“正在处理”,然后运行我的 jQuery 行。

感谢您的帮助。

最佳答案

对Each使用高阶函数

jsonList.forEach(function(user){
if(user.name == "name" && user.Status == "In Progress"){
  $('#takeAction').css('display', 'block');
}
})

如果localStorage中没有存储用户,也考虑将user设置为null

var user = localStorage.getItem("user") || null;

关于javascript - AngularJS - 将登录用户与 JSON 数组中的用户匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38922987/

相关文章:

javascript - jQuery UI 小部件 - 将 jQuery 对象存储在实例变量中

javascript - 如何改变一个div的几个子div的样式?

javascript - AngularJS:将表单字段的值设置为各种对象属性

javascript - AngularJS - 是否可以更改链接或编译指令中 ngModel 属性的值?

javascript - AngularJS 中的切换复选框未反射(reflect)在 Controller 中

javascript - 如何防止我的触摸设备执行::hover 而不是点击功能?

javascript - 如何循环遍历 UL 中的 LI 项,获取特定属性,并通过 $.ajax 数据传递它们

angularjs - 指令 - AngularJS

javascript - 我怎样才能使特定的 li 在 while 循环中处于事件状态

javascript - 为什么 Function.prototype 上没有原型(prototype)属性?