【问题标题】:How to send an array of Objects to AngularJS?如何将对象数组发送到 AngularJS?
【发布时间】:2016-02-14 11:56:12
【问题描述】:

简要版

我想知道如何将 NodeJS 中的以下对象数组发送到 AngularJS 中的应用程序。

var players = 
[ 
  Footer: { username: 'Footer', hp: 200, exp: 1 },
  Barter: { username: 'Barter', hp: 200, exp: 1 }
];

我尝试通过多种方式发送它,但我总是在 AngularJS 端收到一个空数组。

扩展问题

在服务器上,我将新用户分配给数组players。我想找到user object 传递username 作为数组的一些索引。我已经使用 .push 方法成功地完成了它,但它没有提供使用索引访问它的方法。所以,我开始使用bracket notation 在我的数组上创建对象,然后使用它进行访问:

//players.push(user); //This does work, but won't be indexed.
var username = user.username; //This is the new user object.
players[username] = user; //Using bracket notation to create object

在那之后,我有一个用这个players 数组响应的路由。我试过res.send()res.json()。该数组在发送前是console.log(),这很好。但是响应是一个空数组。

在客户端,我正在记录 res.data,它只记录 []

我有点卡在这里。如果需要,我可以在这里放更多代码。或者,您可以使用完整代码访问此GitHub project

【问题讨论】:

  • 他们的第一个数组语法错误,数组项不能有键
  • 谢谢,@mcfedr。我已将数组更改为对象,一切正常。只需 [ ] 到 { }。

标签: javascript arrays angularjs node.js


【解决方案1】:

如果players 是一个数组,则必须使用索引而不是username 字符串来填充它。 JSON.stringify 将忽略数组对象上的非整数键。

【讨论】:

    猜你喜欢
    • 2015-09-02
    • 2016-12-06
    • 2013-12-08
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多