2016-04-12 12 views
1

Ich habe ein sehr seltsames Problem. Mit Hilfe von $ http wird meine Antwort nicht richtig in map/object gemarshallt. Die Daten sind eine Liste von Listen. Das Problem ist, dass das Element 100110150000000751 einen Wert aus den Rohdaten im ersten Protokoll "1 Gruppendaten [" hat. aber nachdem es in json konvertiert wurde, hat es den Wert eines leeren Arrays. Sie können das Bild des Protokolls "nach der Konvertierung" sehen. Dies funktioniert alles in Chrome mit Debugger geöffnet, aber nicht, wenn der Debugger geschlossen ist. Die Methode ist so einfach und es gibt wenig oder keinen Platz für Rennbedingungen oder irgendetwas anderes. Ich habe eine kleine Desktop-HTML-Datei mit den gleichen Bibliotheken erstellt und nur eine Funktion ohne $ http aufgerufen und es funktioniert ohne Probleme. Angular 1.4.5 Jede Hilfe wird sehr geschätzt.

transformResponse: function(groupMapResponse){ 
    console.log("1 group data ["+groupMapResponse+"]"); 
    var asdfdsafsad = (typeof groupMapResponse === 'string')?JSON.parse(groupMapResponse):groupMapResponse; 
    console.log("after conversion:",asdfdsafsad); 
    return asdfdsafsad; 
} 

Konsolenprotokoll ist:

1 Gruppendaten [{ "1000110150000002801": [ "1000110020000007753"], "1000110150000002855": [ "1000110020000009470"], "1000110150000004452": [ "1000110020000007895"] "1000110150000004362": [ "1000110020000006355"], "1000110150000004361": [ "1000110020000010309"], "1000110150000000751": [ "1000110020000007950"], "1000110150000004412": [ "1000110020000006353"]}]

enter image description here

+0

Also wo funktioniert es ** nicht **? – Phil

+0

Um das Feld, das mit 751 endet, sollte kein leeres Array sein. – Koder

+0

Bei der Verkettung von 'groupMapResponse' in der Konsolenausgabe konvertierst du es implizit in eine Zeichenkette, wo es nicht sein könnte. Sie sollten etwas wie 'console.log ('typeof groupMapResponse', typeof groupMapResponse); console.log ('groupMapResponse', groupMapResponse) 'um zu sehen, was es eigentlich ist – Phil

Antwort

0

Es stellte sich heraus, dass das Problem nicht in Marsha war überhaupt nicht. Das Objekt wurde bereits mit einem gebundenen Objekt verknüpft und später geändert, aber die Protokollnachricht wurde mit dem gebundenen Wert aktualisiert. Wie auch immer ...