【问题标题】:angular2 array push in object from databaseangular2数组从数据库中推入对象
【发布时间】:2017-01-17 02:18:34
【问题描述】:

我使用 angular2 rc5

我创建了一个数组调用用户,然后从 mongodb 中推送数据,这只是来自 mongodb 的 id 和一个电子邮件用户

(1)    public user[] = [];
    for (let i=0;i<data.length;i++){
                this.user.push(data[i]);
                }

我得到的结果是这样的

->[]
Object
_id:"57bbd5f8f6f5382c313f1cfe"
email:"rommy.gautanto@map.co.id"
__proto__:Object

1:Object
_id:"57c4f5210e7f0d181a0ec9f8"
email:"zxcv"
__proto__:Object

2:Object
_id:"57c64ed4918f02f80a269121"
email:"asdf@map.co.id"
__proto__:Object

length: 3

第二次尝试是这样的

(2) public user[] = [
{email:'asdf'}
{email:'12345'}
{email:'plaskd'}
];

我得到了结果

->[object,object,object]  <<---- here is the diferance
Object
email:"asdf"
__proto__:Object

1:Object
email:"12345"
__proto__:Object

2:Object
email:"plaskd"
__proto__:Object

length: 3

我使用数组进入 vaadin 组合框第二次成功,但第一次继续出错

未捕获的 TypeError: (item) 应该是一个有效的项目

如何使第一次工作

【问题讨论】:

  • 你是如何在 vaadin 组合框中使用数组的?如果您将第二个更改为“id”,它会起作用吗?
  • 在标准国际英语中,我们将句子的第一个单词大写,将单词“I”大写,并将标点符号放在句子的末尾。这不是聊天室或短信对话。

标签: arrays mongodb angular typescript vaadin


【解决方案1】:

显然某处存在问题。我设法重现了这一点并找到了解决方法,但确切的原因对我来说仍然未知。在我们进一步调查期间,请使用以下解决方法。

不要将数据源中的项目直接添加到this.user 数组中,而是将它们收集到一个新的数组实例中,然后分配给用户属性:

var usersData = [];
for (let i = 0; i < data.length; i++) {
  usersData.push(data[i]);
}
this.user = usersData;

【讨论】:

  • 感谢它的工作,我猜是直接推送到数组有问题
猜你喜欢
  • 2017-06-07
  • 2021-11-06
  • 2019-06-01
  • 2023-03-29
  • 1970-01-01
  • 2017-12-05
  • 2017-09-01
  • 2017-05-08
相关资源
最近更新 更多