因此,当用户登录时,我在用户本地存储中设置了一个 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');
如您在上图中所见,返回的数组是“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/