应用程序在“关闭”之后停止工作(控制台中没有错误);咕哝的构造”;

App stop working (with no errors in console) after "grunt build"

本文关键字:有错误 关闭 之后 停止工作 控制台 应用程序      更新时间:2023-09-26

我正在使用yeoman+bower+grunt构建一个AngularJS应用程序。该应用程序运行良好,直到我用grunt构建为止,尽管没有返回任何错误。

在我的应用程序中,我基本上是要求用户在选择中从1到7中选择一个值,根据选择,应用程序会生成一系列随机数(然后执行更多操作)。

显然,生成随机数的函数在我的测试环境中是有效的,但在构建和部署dist之后,我只得到了一系列0。

这就是功能:

$scope.numbers = function getNumbers (pick) {
    var min = 0;
    var max = 0;
    var numbers = {
      '0': function () {
        min = 0;
        max = 0;
      },
      '1': function () {
        min = 1;
        max = 3;
      },
      '2': function () {
        min = 3;
        max = 5;
      },
      '3': function () {
        min = 5;
        max = 8;
      },
      '4': function () {
        min = 8;
        max = 13;
      },
      '5': function () {
        min = 13;
        max = 21;
      },
      '6': function () {
        min = 21;
        max = 34;
      },
      '7': function () {
        min = 34;
        max = 55;
      },
      'default': function () {
        min = 0;
        max = 0;
      }
    };
    (numbers[pick] || numbers['default'])();
    var arr = [];
    // Generate a sequence of as many random numbers within the given range as the number of iterations
    for (var i=0; i<$scope.iterations; i++) {
      arr.push(Math.floor(Math.random() * (max - min + 1)) + min);
    }
    return arr;
  };

然后用于创建一个新字段:efforts: $scope.numbers($scope.pick)

因此,由于某种原因在使用grunt构建后,函数无法识别用户选择的值,并且始终返回默认值(0)。

我已经排除:

  1. 开关出现问题(因为在函数开始时将变量设置为不同于0的值仍然返回零)
  2. pick未正确注册(它已正确保存在Firebase中,并且从未为0)

有什么提示吗?

更新:我从缩小的文件中提取了这个部分:

b.numbers=function(a){var c=0,d=0,e={0:function(){c=0,d=0},1:function(){c=1,d=3},2:function(){c=3,d=5},3:function(){c=5,d=8},4:function(){c=8,d=13},5:function(){c=13,d=21},6:function(){c=21,d=34},7:function(){c=34,d=55},"default":function(){c=0,d=0}};(e[a]||e["default"])();for(var f=[],g=0;g<b.iterations;g++)f.push(Math.floor(Math.random()*(d-c+1))+c);return f}

好吧,我自己看了缩小版并运行了一些测试就明白了。问题实际上是迷你人去掉了单引号。

因此,我自己删除了引号,并确保pick以整数形式传递:

(numbers[parseInt(pick, 10)] || numbers['default'])();

干杯