在AngularJS中增加Array中的值

时间:2017-12-13 01:41:04

标签: angularjs

我是初学者。
试图做一个简单的足球比赛 所有值都初始化为0 从下拉列表中选择2个不同的团队>>输入最终得分(不能为负数) 点击“最终得分”按钮, 函数应该将两个团队的'Played'值增加到1。 以及在表格中显示。

sol

代码here

1 个答案:

答案 0 :(得分:0)

我在这里看了一下,发现了一些东西。我没有更改所有内容,但您应该使用工具进行其他更改(例如更新绘图计数)。

  1. 你有两个控制器,一个基本上只是为了检索团队列表。这使数据的操作变得复杂,所以我改为使用$http,并从.json文件加载。
  2. 在您的用户界面中,您对团队进行了迭代,并存储了名称。我将其更改为存储所选两个团队的索引。这在整个代码中用于访问该团队。由于迭代已经在UI中发生,因此存储这些索引与在控制器中再次搜索它是有意义的。这使我们可以访问teams数组中用于增加值的对象。
  3. 相关的代码位如下。

    通过HTTP加载数据

      $http.get('teams.json').then(function(resp){
        $scope.Ligateams = resp.data;
      })
    

    使用索引与名称

    <select ng-model="Matchteam2.idx" ng-disabled="editButton1">
      <option ng-repeat="Matchteam2 in Ligateams"
              value={{$index}}>{{Matchteam2.name}}
      </option>
    </select>
    

    访问控制器中的团队信息

    现在我们可以从具有索引的团队数组中获取团队对象。

    var team1 = $scope.Ligateams[$scope.Matchteam1.idx];
    var team2 = $scope.Ligateams[$scope.Matchteam2.idx];
    
    team1.played++;
    team2.played++;
    

    访问用户界面信息

    由于基本名称&#39;字段不再在Matchteam#上,我们可以再次使用索引访问Ligateams数组中团队对象的name属性。

    Goal by Team <b>{{Ligateams[Matchteam1.idx].name}}</b
    

    以下是修复了一些内容的示例:https://plnkr.co/edit/Yby8D0z8IIEGXNxlwX4D?p=preview