for (let .. of ) grunt 构建中的错误

for (let .. of ) error in grunt build

我有一个 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.

是 g运行t 错误吗?我有 grunt v0.4.5 感谢您的帮助

编辑

在下面link link可以看到关于语法的文档

试试这个

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

这似乎是一个错误,因为 space 在 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)));
};

错误还指向预期的 ;,这意味着它认为 space 是该语句的结尾并提示输入 ;