Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

471
Visualizações
Agregue snapshot.val & snapshot.key a una matriz mientras estoy suscrito

me voy a romper la cabeza con una piedra ^^"
tengo este codigo:

 this.af.database.list('/Documentos', { preserveSnapshot: true }) .subscribe(snapshots => { snapshots.forEach(snapshot => { console.log(snapshot.key, snapshot.val()); }); })

Con eso extraigo todos los datos correctamente, pero ahora quiero agregar a una matriz de objetos o algo así (comencé hace unas semanas con Firebase + Angular2).
Quiero llenar esa matriz para cargar la [tabla inteligente ng2] y si estoy pensando parcialmente bien con una matriz correctamente formada, llenaré la tabla, pero no sé cómo. Espero que alguien pueda ayudar.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Si desea un mapa (objeto) con key: value , puede hacerlo fácilmente con Array.prototype.reduce() :

 const map = snapshots.reduce((map, snapshot) => { map[snapshot.key] = snapshot.val(); }, {});
over 4 years ago · Santiago Trujillo Relatório

0

Bueno, según el ejemplo: https ://akveo.github.io/ng2-smart-table/#/examples/using-filters...

(Puede encontrar el código fuente aquí: https://github.com/akveo/ng2-smart-table/blob/master/src/app/pages/examples/filter/basic-example-source.component.ts )

... tienes que poner tus datos en un objeto JSON:

 settings = { columns: { id: { title: 'ID', filter: false, }, name: { title: 'Full Name', filter: false, }, username: { title: 'User Name', filter: false, }, email: { title: 'Email', filter: false, } } }; data = [ { id: 1, name: 'Leanne Graham', username: 'Bret', email: 'Sincere@april.biz', }, { id: 2, name: 'Ervin Howell', username: 'Antonette', email: 'Shanna@melissa.tv', } ];

"configuración" contiene los nombres de sus columnas y "datos" deben coincidir con las columnas de "configuración".

Sería más fácil si supiéramos un poco más de su código (columnas de su tabla + datos devueltos por su servicio), pero supongo que algo así funcionaría:

 data = []; this.af.database.list('/Documentos', { preserveSnapshot: true }) .subscribe(snapshots => { snapshots.forEach(snapshot => { data.push( { [snapshot.key]: snapshot.val() } ); }); })

Tenga en cuenta que esto creará una matriz JSON con solo una clave/valor por fila. Necesitamos saber más sobre sus datos para darle una respuesta adecuada.

over 4 years ago · Santiago Trujillo Relatório

0

Ok, encontré la solución con un simple Array() x)

 this.af.database.list('/Documentos', { preserveSnapshot: true }) .subscribe(snapshots => { snapshots.forEach(snapshot => { let length = todo.documentos.push(snapshot.val()); // documentos is an array in the class todo.source.load(todo.documentos); }); });
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda