在ng-repeat内部的angularjs ng-repeat,内部数组无法更新

时间:2014-06-27 07:22:39

标签: angularjs ng-repeat

我来自中国,我的英语很差,所以我做demo。如何在ng-repeat内更新数组?

1 个答案:

答案 0 :(得分:0)

HTML:

<body ng-app="main" ng-controller="DemoCtrl">

  <table ng-table class="table">
    <tr ng-repeat="user in users">
      <td data-title="'Name'">{{user.name}}</td>
      <td data-title="'Age'">{{user.age}}</td>
      <td>
        {{user.spms|json}}
        <div ng-repeat="u in user.spms">
          <span ng-bind="u"></span>
          <input type="text" ng-model="u" ng-change='updateArray($parent.$index, $index, u)'>
        </div>
      </td>
    </tr>
  </table>

</body>

JS:

var app = angular.module('main', []).
controller('DemoCtrl', function($scope) {

  $scope.users = [{
      name: "Moroni",
      age: 50,
      spms: [
        6135.7678, 
        504.4589,
        2879.164, 
        669.7447
        ]
    },
    {
      name: "seven",
      age: 30,
      spms: [
        34135.7678, 
        5034.42589,
        22879.1264, 
        63469.72447
        ]
    }

  ];

  $scope.updateArray = function(parent, index, u) {
    $scope.users[parent].spms[index] = u * 1; // multiply by one to keep the value a Number
  }

})

这里有一些问题,每个更新都在改变范围,所以你只能改变一次点击然后改变 - 所以我建议添加一个更新值按钮并实现或多或少相同的逻辑来更新数组值。

DEMO