【问题标题】:for (let .. of ) error in grunt buildgrunt build 中的 for (let .. of ) 错误
【发布时间】:2016-04-29 21:34:38
【问题描述】:

我有一个 Angular 应用程序,并且在某些控制器中有以下代码:

for (let subForm of $scope.info.subForms) {
    var index = $scope.data.fields.indexOf(subForm);
    $scope.data.subForms.push($scope.data.fields.splice (index + 1 , (subForm.data * subForm.filesLength)));
};
......

当使用grunt serve 运行我的应用程序时,应用程序运行正常而没有错误,但是当使用命令grunt build 生成部署代码时出现以下错误:

Unexpected token name «subForm», expected punc «;». 
Line 1410 in .tmp/concat/scripts/scripts.js
Use --force to continue.

是一个咕噜错误?我有grunt v0.4.5 谢谢你的帮助

编辑

在以下链接中link 可以看到有关语法的文档

【问题讨论】:

  • 什么是 grunt serve?
  • 顺便说一下 let 是 es6 语法。
  • 这看起来像是生成的 JS 中的语法错误。你能发布你的Gruntscript 的一部分吗?它们编译的目标可能有所不同。
  • 为什么var index = $scope.data.fields.indexOf (subForm);中的indexOf后面有空格?
  • 嗨 @Yerken 这是一个错误,但这不是 Grunt 错误的原因

标签: javascript angularjs gruntjs grunt-contrib-uglify


【解决方案1】:

试试这个

angular.foreach($scope.info.subForms, function(subForm) {
    var index = $scope.data.fields.indexOf (subForm);
    $scope.data.subForms.push($scope.data.fields.splice (index + 1 , (subForm.data * subForm.filesLength)));
})

您的内部代码可能需要重构。如果您分享使用,我可以尝试帮助您。

另一种解决方案

for (let index = 0; index < subForm of $scope.info.subForms.length; index++) {
    $scope.data.subForms.push($scope.data.fields.splice (index + 1 , (subForm.data * subForm.filesLength)));
};

【讨论】:

  • Work,grunt 表示不支持 (let .. of ..) 的表示法?
  • 你能给我发一些相关的文件吗?我找不到像你的例子这样的信息。
  • 我在问题中添加了链接
【解决方案2】:

这似乎只是一个错误,因为 indexOf( 之间有空格。更改您的代码如下:

for (let subForm of $scope.info.subForms) {
  var index = $scope.data.fields.indexOf(subForm);
  $scope.data.subForms.push($scope.data.fields.splice(index + 1 , (subForm.data * subForm.filesLength)));
};

该错误还指向预期的;,这意味着它考虑将空格作为此语句的结尾并提示输入;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2019-11-28
    • 2016-09-13
    • 2015-05-19
    • 2018-08-01
    相关资源
    最近更新 更多