2017-06-10 1 views
0

Wenn ich meine Winkel Frontend starten erhalte ich die folgenden SyntaxfehlerAngular Frontend Syntaxfehler

choose.html:1 Uncaught SyntaxError: Unexpected token l in JSON at position 1
at JSON.parse()
at Object.fromJson (vendor.js:14110)
at Object.getObject (vendor.js:4234)
at Object.get (vendor.js:4347)
at Object.get (vendor.js:47560)
at runTranslate (vendor.js:47789)
at Object.invoke (vendor.js:17454)
at vendor.js:17262
at forEach (vendor.js:13111)
at createInjector (vendor.js:17262)

Die vendor.js automatisch erstellt werden, und wenn ich den Fehler sehe es ist wirklich spezifisch, was die Leute geschrieben und nicht etwas automatisch generiert. Jede Idee, in welche Richtung ich suchen müssen:

Bei 14110 ist das folgende Segment:

/** 
* @ngdoc function 
* @name angular.fromJson 
* @module ng 
* @kind function 
* 
* @description 
* Deserializes a JSON string. 
* 
* @param {string} json JSON string to deserialize. 
* @returns {Object|Array|string|number} Deserialized JSON string. 
*/ 
function fromJson(json) { 
    return isString(json) 
     ? JSON.parse(json) 
     : json; 
} 
+0

JSON.Stringify (JSON); anstelle von JSON.parse (json) –

+0

Der gesamte Code in vendor.js wird erzeugt, nachdem ich meine eckige Anwendung mit Schluck gebaut habe, also weiß ich nicht, wie man das ändert. – turoni

+0

werfen Sie einen Blick auf meine Antwort, gibt es etwas in Ihrem Build-Skript (einige Schluck-Plugin), das könnte das tun? – toskv

Antwort

0

ich habe nicht wirklich in der Lage gewesen, es zu bestätigen, und es ist keine wirkliche Lösung, aber die Linie

at runTranslate (vendor.js:47789)

mich dazu gebracht zu glauben, dass ein Fehler in meiner übersetzen app da war. Weil ich es nicht brauchte, entfernte ich es aus meiner Anwendung und es löste meine Probleme in der Tat. Dies ist natürlich keine echte Lösung, aber es war genug für mich.

0

Dies könnte sein, weil der Compiler oder etwas anderes einfügt; am Ende der Return-Anweisung.

So verwandeln Sie sich in etwas wie diese, die ungültige Javascript ist.

function fromJson(json) { 
    return isString(json); // added ; here 
     ? JSON.parse(json) // no longer valid javascript 
     : json; 
} 

Sicherstellen, dass der Code nicht auf diese Weise umgewandelt wird, oder den ternären Ausdruck in einer Zeile schreiben.

+0

Ich glaube nicht, dass mein Schluck-Buildskript das tut, und der Code, den ich kopiere, ist die Live-Version im Chrom-Entwicklungstool, also bin ich ziemlich sicher, dass es kein gibt; dort – turoni

+0

und die Version, die Sie ausführen, ist in keiner Weise minimiert? – toskv

1

Das Problem ist nicht in vendor.js noch in der Art, wie vendor.js kompiliert wird. Es sagt Undexpected token I in JSON at position 1. Das bedeutet, dass Ihre Anwendung versucht, ein JSON-Objekt zu analysieren (mit der oben genannten Funktion fromJson) und fehlschlägt, wenn sie auf eine ungültige JSON-Zeichenfolge stößt. Setzen Sie den Haltepunkt auf die Funktion und führen Sie die App erneut aus, um zu sehen, welcher JSON genau abstürzt out dann, was Sie falsch gemacht haben.

+0

Wie empfehlen Sie einen Haltepunkt in einer Front-End-App zu setzen. – turoni

+1

Sie können beispielsweise Chrome Dev Tools oder Firebug verwenden. Wenn Sie auf die rechte Seite neben Ihrem Konsolenfehlerbericht klicken (etwas wie vendor.js: x), werden Sie direkt zu der Funktion von Json gelangen. Platziere dort einfach einen Haltepunkt und aktualisiere die Seite. –