AngularJS ng-repeat内部ng-repeat,内部数组无法更新



我来自中国,英语很差,所以我做了一个演示。如何更新ng-repeat中的数组?

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

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

演示