0

所以我遇到了 Polymer 1.0 的数组没有按预期传递的问题。我目前有一个 usersInOrg 数组,需要传递给应用程序的另一部分。在我开始尝试使用从嵌套函数内部添加的对象来改变数组之前,自动数据绑定系统就像一个魅力。

财产:

    usersInOrg: {
      type: Array,
      notify: true
    },

功能:

  _computeUsersInOrg: function(){
    /************* userIdsObjectInOrg ***********
    {
      uid: true
      uid2: true
      uid3: true
      ...
    }
    ********************************************/
    var userIds = Object.keys(this.userIdsObjectInOrg);
    // Empty old users (just in case)
    this.usersInOrg = [];
    // So I can use this.notifyPath or this.usersInOrg in the firebase call
    var self = this;
    for (var key in userIds) {
      // Where the user is found in the database
      var userRef = this.baseRef + '/users/' + userIds[key];
      // Create query
      var firebaseRef = new Firebase(userRef);
      // Here is where I should be adding my people into the array
      firebaseRef.on("value", function(snapshot) {
        // This comes back fine { name: Jill, age: 23, ... }
        console.log(snapshot) 

        // For debugging purposes (number are appearing correctly)
        self.notifyPath('usersInOrg', [5,6]);
        // Add in the user info to the array
        self.push('usersInOrg', snapshot.val());
        // Let index know I added it
        self.notifyPath('usersInOrg', self.usersInOrg);
      })
    }
  }

输出:

Users in Org: 5,6
Hello from shokka-admin-homepage

为什么对象没有附加到我的数组中?它应该输出5,6,[Object object]我想。

4

1 回答 1

1

当我输入这个问题时,我找到了答案。如果我深入研究列表的外观,我可以更好地看到我所拥有的。这是我的列表在循环并尝试显示一些数据时的样子。我没有更改我的问题中的任何代码。

新输出:

User: 5
First Name:
User: 6
First Name:
User: [object Object]
First Name: Jill

Users in Org: 5,6
Hello from shokka-admin-homepage

故事的寓意:数组不会像对象将自身字符串化一样对对象进行字符串化。当一个对象在一个数组中时,它只是简单地跳过它并继续前进。控制台日志是您的朋友。

控制台日志输出:

[5, 6, Object, splices: Object]
于 2016-02-23T19:29:14.307 回答