函数不返回变量

时间:2015-12-11 15:16:41

标签: javascript angularjs

这个非常容易和愚蠢的问题,但我已经被困在两天了。 我必须从服务器或其他什么接收数据,我写了简单的功能,所以 这家伙

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

1 个答案:

答案 0 :(得分:0)

愚蠢的问题,愚蠢的回答

我在我的推送功能范围内插入了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;
};

谢谢,建议检查调试器中的每一步