角度前端语法错误

时间:2017-06-10 15:43:49

标签: angularjs typescript

当我启动角度前端时,我收到以下语法错误

  

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;
}

3 个答案:

答案 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)

让我相信我的翻译应用程序出错了。因为我不需要它,我从我的应用程序中删除它,它确实解决了我的问题。 这当然不是一个真正的解决方案,但对我来说已经足够了。