2016-08-12 12 views
1

ログインしたユーザーのローカルストレージに、ログインしたユーザー名を含むキーを設定しています。私がする必要があるのは、という2つのものは、そのユーザー名でその値を取得し、APIから返されるユーザー名のJSON配列を検索します。ローカルストレージのユーザー名がJSON配列の名前の1つと一致し、JSONの "status"キーの値が "IN PROCESS"の場合は、単純なjQuery行を実行する必要があります。ここでAngularJS - JSON配列のユーザーとログインしているユーザー

がAPIからユーザ名のリストを含むJSONを返しているコントローラです。

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

私は実行する必要がjQueryのラインがちょうどです:

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

enter image description here

上記の図のように、返されている配列は「すべての現在の承認者」で、もう1つのキーは「ステータス」です。ローカルストレージ内のユーザ名(または電子メール)が「すべての現在の承認者」のいずれかと一致していることがわかります。そして、1つの電子メールだけが配列に存在するにもかかわらず、アプリケーションの他のものは5つ以上のユーザー名を持つので、配列を検索する必要があります。

私は、ローカルストレージからユーザ名を取得する変数を作成することができます。

var user = localStorage.getItem('user') 

しかし、そこから私はにチェックし、「すべての現在の承認者」の値を持つ配列を、それを一致するかどうかはわかりませんステータスが "IN PROCESS"であることを確認してから、jQueryの行を実行してください。

ありがとうございました。

答えて

1

基本的なforループのようなサウンドは、あなたが望むようになるでしょう。

スペースを含むJSONプロパティを参照するためのブラケット構文に注意してください。

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

+0

に保存されているユーザが存在しない場合、nullにユーザーを設定することを検討します。.. .. $ scope.details = detailsはすべてのJSONのキーと値を返しています。私は '詳細'出力を検索し、配列 "All Current Approvers"を検索し、それをローカルストレージのユーザに一致させる必要があります。 AllCurrentApproversをどこで定義していますか? – agon024

+0

私はそうではありません、私はちょうど例としてforループの概念を説明するために使用しています。あなたが望むものはforループです。私はforループを構築するための例を提供しました。あなた自身の詳細、特にすべての現在の承認者配列への参照を記入する必要があります。 –

+0

配列の参照方法元の質問ですか? –

2

使用高階関数ますforeachはまた、私はそれが本当に動作するように起こっているとは思わないのlocalStorage

var user = localStorage.getItem("user") || null; 
関連する問題