2016-07-27 84 views
0

嘗試操縱response.data以在使用.map的響應中添加isLoggedin = true,但它給我的「map」錯誤不是函數。使用.map的angularjs不是函數

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

試圖這樣做,這樣我可以有一個數據來引用用戶是否登錄或不顯示(登錄/註銷)。或者我可以使用$rootScope但我認爲使用全球並不理想?

$rootScope.isLoggedIn = false; 

然後在我的vm.login功能$rootScope將被設置爲true,這個工作,但是當我刷新頁面,又回到假。

+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,但錯誤說(不能創建字符串「用戶名」屬性) – nCore

+0

看到我的編輯上面 – glendaviesnz

相關問題