2016-07-27 8 views
0

.mapを使用して応答にisLoggedin = trueを追加しようとするとresponse.dataを操作しようとしましたが、「map」というエラーが表示されることは機能ではありません。anglejsを使用している.mapは関数ではありません

vm.dataResponse = response.data.map(function(data){ 
    data.isLoggedIn = false; 
}); 

これを行うと、ユーザーがログインしているかどうか(ログイン/ログアウト)を参照するデータを持つことができます。または$rootScopeを使用することができましたが、グローバルを使用するのは理想的ではないと思いましたか?

$rootScope.isLoggedIn = false; 

は、その後、私のvm.login機能に$rootScopeが、その後trueに設定されます、これは動作しますが、私はページを更新する場合はfalseに戻ります。

+0

何が 'はconsole.log(応答

あなただけの文字列を試して戻ってきているので。データ) 'プリント? – developer033

答えて

1

response.dataは、既存の配列のすべての値を反復し、それぞれに設けられたコールバックの結果を返すことによって、新しい配列を作成する.MAP

を.MAP使用するための配列である必要があります配列のメンバ、例えば。

var oldArray = [1,2,3,4]; 
var newArray = oldArray.map(function(number){ 
    return number * 2; 
}); 
//newArray = [2,4,6,8] 

この例では、コールバックから何も返さないため、response.dataが配列であっても機能しません。

response.dataがオブジェクトの場合は、直接プロパティを追加することができます。

response.data.isLoggedIn = false; 

あなたはdeveloper033の通り行うと、それを処理するために最善の方法を識別するのに役立つだろうresponse.dataのはconsole.logの出力を提供することができれば。

編集:

vm.dataResponse = {ユーザ名:response.data、isLoggedIn:真}

+0

ああ、私はvm.loginが呼び出されたときに単一のオブジェクトを返すだけです。ユーザー名を返すだけです。試してみましたが、response.data.isLoggedIn = falseですが、エラーが表示されます(文字列 "username"にプロパティを作成できません) – nCore

+0

上記の編集を参照してください – glendaviesnz

関連する問題