当我启动角度前端时,我收到以下语法错误
choose.html:1 Uncaught SyntaxError:JSON中的意外标记l 位置1 在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)
在runTranslate(vendor.js:47789)
at Object.invoke(vendor.js:17454)
在vendor.js:17262
在forEach(vendor.js:13111)
在createInjector(vendor.js:17262)
自动创建vendor.js,当我查找错误时,它确实特定于人们编写的内容,而不是自动生成的内容。 知道我需要看哪个方向:
14110是以下部分:
/**
* @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 :(得分:1)
问题不在vendor.js中,也没有编译vendor.js。它说Undexpected token I in JSON at position 1
。这意味着您的应用程序正在尝试解析JSON对象(使用上面提到的函数fromJson
并失败,因为它偶然发现了无效的JSON字符串。
在函数上放置断点并重新运行应用程序以查看哪个JSON完全崩溃。希望你能弄清楚你做错了什么。
答案 1 :(得分:0)
这可能是因为编译器或其他东西在return语句的末尾插入; 。
从而将你变成像这样无效的javascript。
function fromJson(json) {
return isString(json); // added ; here
? JSON.parse(json) // no longer valid javascript
: json;
}
确保代码不会以这种方式转换,或者将三元表达式写在一行上。
答案 2 :(得分:0)
我还没有真正确认它,这不是一个真正的解决方案,而是行
在runTranslate(vendor.js:47789)
让我相信我的翻译应用程序出错了。因为我不需要它,我从我的应用程序中删除它,它确实解决了我的问题。 这当然不是一个真正的解决方案,但对我来说已经足够了。