尝试操作response.data以使用.map
在响应中添加isLoggedin = true
,但它给我一个“map”不是函数的错误。
vm.dataResponse = response.data.map(function(data){
data.isLoggedIn = false;
});
尝试这样做,以便我可以有一个数据来引用用户是否已登录或未显示(登录/注销)。或者我可以使用 $rootScope
但我认为使用 global 并不理想?
$rootScope.isLoggedIn = false;
然后在我的 vm.login 函数中,$rootScope
将被设置为 true
,这可以工作,但是当我刷新页面时,它会返回到 false。
最佳答案
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:true}
关于javascript - angularjs 使用 .map 不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38601940/