总函数不返回值

Total function not returning value

本文关键字:返回值 函数      更新时间:2023-09-26

所以我可以很好地访问我的数组的值:

 $scope.checkVal = myArray[0].Value;

我想对数组中值的总和相加:

$scope.sumByYear = function () {
    var yearTotal = 0;
    for (var i = 0; i < myArray.length; i++) {
        yearTotal += myArray[i].Value;
    }
    return yearTotal;
}

这是我的 Html 指令:

<div ng-app="myApp" ng-controller="myCtrl">
    <div> {{sumByYear | currency}} </div>
</div>

不返回任何内容。我错过了什么?

由于sumByYear是一个函数,因此您需要调用它:

<div>{{sumByYear() | currency}}</div>

但是,如果可能的话,最好在控制器中预先计算动态值,避免在HTML中执行函数。

sumByYear是函数指针而不是一个值,所以如果你想得到一个值,你需要调用它。

HTML(在我的示例中,请注意yearTotal而不是sumByYear):

<div ng-app>
  <div ng-controller="ClickToEditCtrl">
    <div ng-hide="editorEnabled">
      {{title}} {{ yearTotal | currency }} 
      <a href="#" ng-click="editorEnabled=!editorEnabled">Edit title</a>
    </div>
    <div ng-show="editorEnabled">
      <input ng-model="title">
      <a href="#" ng-click="editorEnabled=!editorEnabled">Done editing?</a>
    </div>
  </div>
</div>

JS(再次注意yearTotal而不是sumByYear):

function ClickToEditCtrl($scope) {
  $scope.title = "Welcome to this demo!";
  $scope.yearTotal = 0;
  var myArray = [1,2,3,4,5];    
    for (var i = 0; i < myArray.length; i++) {
       $scope.yearTotal += myArray[i];
    }               
}

关于 jsfiddle 的例子

sumByYear必须sumByYear() 。 sumByYear 是一个函数