2016-02-23 2 views
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], я бы подумал.

ответ

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 

Мораль: Массивы не stringify объекты точно так же объекты stringify сами. Когда объект находится в массиве, он просто пропускает его и перемещается. Консольные журналы - ваш друг.

Console Log Output:

[5, 6, Object, splices: Object] 
Смежные вопросы