[英]App stop working (with no errors in console) after “grunt build”
我正在使用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)。
我已经排除在外:
有什么提示吗?
更新:我从缩小的文件中提取了这部分:
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}
好的,我自己看了一下缩小版并进行了一些测试。 问题实际上是Minifier删除了单引号。
因此,我自己删除了引号,并确保将选择作为整数传递:
(numbers[parseInt(pick, 10)] || numbers['default'])();
干杯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.