所以我遇到的问题是Polymer 1.0&#39的数组未按预期传递。我目前有一个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]
我想。
答案 0 :(得分: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]