2016-05-23 2 views
0

Ich habe eine Liste in AngularJS, $ scope.list [];Karte (Schlüssel, Wert) Struktur in AngularJS erstellen und mit Daten aus JSON füllen

Was ich wissen will, ist, wie kann ich diese Liste füllen einen Schlüssel, Wert Struktur wie folgt angepasst:

$scope.list[{key,value},{key,value}]; 

und ich möchte füllen, dass „Karte“ mit Daten im JSON-Format kommen:

{ 
    exportData { 
    id: 1, 
    name : "Peter", 
    lastname : "Smith" 
    age : 36 
    } 
} 

Wo die Id wird der Schlüssel und der Rest des strucure sein wird de VALUE

zum Beispiel in einer Struktur lik sein e dies:

[ 
     1: { 
     name : "Peter", 
     lastname : "Smith" 
     age : 36 
     }, 
    2: { 
     name : "John", 
     lastname : "Carlos" 
     age : 40 
     }, 
    ] 
+0

ich noch don nicht bekommen, was Sie gerade haben, was das Problem ist, und was ist Ihr erwartetes Ergebnis .. – choz

+0

aber Export Daten sollte kein Array sein? – dminones

+0

Hallo @choz Was ich habe, ist nur die Antwort in JSON, und ich war auf der Suche nach etwas wie eine Karte in JS und AngularJS, mein Problem ist, dass ich nicht weiß, ob es so etwas wie eine Karte in JS ähnlich ist zum Beispiel in Java, wo Sie ein Map-Objekt deklarieren können und dann wie kann ich diese Map mit den Werten füllen, die in meiner Antwort kommen, in diesem Fall ist das Json-Format. – kennechu

Antwort

3

ich den Code unten nach Ihren Bedarf geschrieben, es hoffen, dass Sie helfen:

var data = [ 
        { 
        id: 1, 
        name : "Peter", 
        lastname : "Smith", 
        age : 36 
        }, { 
        id: 2, 
        name : "Peter", 
        lastname : "Smith", 
        age : 36 
        } 
       ]; 

       $scope.itemList = []; 
       angular.forEach(data, function(item){ 
        var obj = {}; 
        var valObj = {}; 

        valObj.name = item.name; 
        valObj.lastname = item.lastname; 
        valObj.age = item.age; 

        obj[item.id] = valObj; 
        $scope.itemList.push(obj); 
       }); 
+0

Vielen Dank für Ihre Zeit! – kennechu

+0

Hallo Sunnet, noch eine Frage, wie kann ich laut diesem Skript vermeiden, den Wert zu schieben, wenn die ID bereits existiert? – kennechu

1

Hoffnung wird diese Funktion Sie

$scope.transform = function(exportData){ var _value = {}; _value.name = exportData.name; _value.lastname = exportData.lastname; _value.age = exportData.age; var item = [exportData.id, _value]; $scope.list.push(item); } helfen

+0

Danke für deine Zeit, ich werde das versuchen =) – kennechu

Verwandte Themen