函数不返回变量

安东

这个非常简单而愚蠢的问题,但是我已经停留了两两天了。我必须从服务器或其他任何设备接收数据,并且编写了简单的功能,所以这个家伙

$scope.myTar = function() {
    return 5;
};

$scope.identity = angular.identity;

$scope.range = function(min, max, step){
    step = Math.floor((max+5)/3);
    var input = [];
    for (var i = min; i < max+5; i += step)
        input.push(i);
    input.push($scope.myTar());
    return input;
};

这个家伙

<div ng-repeat="n in range(0, gauge.gaugeData.target) |orderBy:identity">
    <div ng-class="{ 'numberGaugeBar-goal': n == myTar() }"></div>
    <div class="numberGaugeNumbers-hashHolder"></div>
    <div class="numberGaugeNumbers-numberHolder"> {{n}} </div>
</div> 

为我返回数字5并将其推入我的范围

如果我用这个家伙

$scope.myTar = function(target) {
    $log.debug('['+target+']')
};

它会在控制台上将我所有必要的值返回给我,但是如果我使用此人

$scope.myTar = function(target) {
    return target;
};

<div ng-repeat="n in range(0, gauge.gaugeData.target)|orderBy:identity">
    <div ng-class="{ 'numberGaugeBar-goal': n == myTar(gauge.gaugeData.target) }"></div>
    <div class="numberGaugeNumbers-hashHolder"></div>
    <div class="numberGaugeNumbers-numberHolder"> {{n}} </div>
</div> 

它返回我在控制台目标是未定义的,怎么了?

gaugeData来自其他函数LoadGaugesData,我试图将这部分代码输入到myTar函数中,但它仍然向我展示了同样的东西。您还可以看到我的范围正在使用gaugeData.target,并且效果很好...这是其中的一部分

for (var idx in $scope.sectionDescriptives.scoreSections) {
   section = $scope.sectionDescriptives.scoreSections[idx];
      for (var gaugeIdx in section.gauges) {
         var gauge = section.gauges[gaugeIdx];
         var gaugeData = $scope.getGaugeData(gauge.id);
         gauge.gaugeData = gaugeData;
         gauge.target = gaugeData.target;
         section.gauges[gaugeIdx].gaugeData = $scope.getGaugeData(gauge.id);
}}
安东

对于愚蠢的问题,愚蠢的答案

我在这样的范围内的push函数中插入了max

$scope.range = function(min, max, step){
    step = Math.floor((max+5)/3);
    var input = [];
    for (var i = min; i < max+5; i += step)
        input.push(i);
    input.push(**max**);
    return input;
};

谢谢,为检查调试器的每一步提供建议

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章