Обновление Polymer Array
Поэтому у меня проблема с массивами 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]
Я бы подумал.
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]