簡體   English   中英

AngularJS - 將登錄用戶與JSON數組中的用戶進行匹配

[英]AngularJS - matching logged in user with users in a JSON array

所以我在登錄時在用戶本地存儲中設置了一個包含他們剛剛登錄的用戶名的密鑰。 我需要做的是兩個用它們的用戶名取值的東西 ,並搜索從API返回的用戶名的JSON數組。 如果本地存儲用戶名與JSON數組中的某個名稱匹配,而第二部分如果JSON“status”鍵的值為“IN PROCESS”,那么我需要運行一個簡單的jQuery行。

以下是返回包含API中用戶名列表的JSON的控制器:

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行。

謝謝你的幫助。

對每個使用更高階的函數

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;

聽起來像一個基本的循環將讓你想要你想要的。

var approvers = $scope.details["All Current Approvers"],
    status    = $scope.details.Status;

for (var i = 0; i < approvers.length; i++) {
    if (approvers[i] === user && status === 'IN PROCESS') {
        // do jQuery
    }
}

請注意引用其中包含空格的JSON屬性的括號語法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM