angular2数组从数据库中推入对象

时间:2016-09-09 02:33:22

标签: arrays mongodb angular typescript vaadin

即时使用angular2 rc5

我正在创建一个数组caled用户,然后从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组合框第2次成功,但第1次出现错误

  

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

如何使第一个工作

1 个答案:

答案 0 :(得分:0)

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

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

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