2017-12-11 4 views
1

Polymer dom-repeats akzeptieren nur Array-Datentypen. Ich verwende Firestore. Es wird empfohlen, Objekt-Maps anstelle von Array zu verwenden, da diese im Gegensatz zu Array-Elementen einzeln abgefragt und aktualisiert werden können.Polymer dom-repeat und Firestore - Objektkarte in Array konvertieren

Frage ist, wie kann ich dieses Objekt Karte konvertieren:

{ 
    "subsections": { 
    "0": { 
     "title": "my title 1", 
     "description": "my desc 1" 
    }, 
    "1": { 
     "title": "my title 2", 
     "description": "my desc 2" 
    } 
    } 
} 

Zu diesem Array:

{ 
"subsections": [ 
    { 
    "title": "my title 1", 
    "description": "my desc 1" 
    }, 
    { 
    "title": "my title 2", 
    "description": "my desc 2" 
    } 
} 

Polymer dom-Wiederholung ist dies:

<template is="dom-repeat" items="{{_toArray(sections.subsections)}}"> 

Berufung:

_toArray(obj) { 
    return Object.keys(obj).map(function (key) { 
    return { 
     name: key, 
     value: obj[key] 
    }; 
    }); 
} 

Problem ist Funktion gibt ein verschachteltes Array von 0 und 1 mit Titel und Beschreibung geschachtelt zurück.

Hilfe! Ich bin neu in all dieser Front-End-Entwicklung, so dass jede Hilfe sehr geschätzt wird.

Antwort

1

Ihre _toArray Funktion ändern als

_toArray(obj) { 
    return Object.keys(obj).map(function (key) { 
    return obj[key]; 
    }); 
} 

Dann rufen Sie die Methode als

obj.subsections = _toArray(obj.subsections); 
+0

Bingo folgt! Danke, dass Sie sich die Zeit genommen haben, um zu helfen. –