javascript - angularjs 使用 .map 不是一个函数

标签 javascript angularjs

尝试操作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/

相关文章:

javascript - 快捷方式(如果在 ng-click 内而没有 else)

javascript - 在 JavaScript 中仅使用一个按钮保留不同的标题

javascript - 如何更改菜单选项卡 html 的事件颜色?

javascript - 选项没有突出显示

angularjs - Restangular:错误:未知提供商

javascript - AngularFire 0.5 $删除。错误 : Firebase. 子项失败:第一个参数是无效路径

node.js - Angular 错误的原因 : "Error: No module: ngCookies"?

javascript - 如何将用户输入的表单值从 html 传递到 javascript?

PHP 表单回显 Post 变量不起作用

javascript - 使用 JavaScript 更新 Wicket 图像