ng-repeat里面的angularjs ng-repeat,里面的数组不能更新

标签 angularjs ng-repeat

我来自中国,我的英语很差,所以我做了一个 demo .如何更新内部数组 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
  }

})

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

DEMO

关于ng-repeat里面的angularjs ng-repeat,里面的数组不能更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24446182/

相关文章:

html - 实现页脚底部

angularjs - Laravel 5 使用现有的 AngularJS 验证

javascript - 如何将多值变量传递给 AngularJS 指令

javascript - ng-selected 不更新下拉列表 angularjs

php - AngularJS 在 http 之后在 ng-repeat 中更新单个模型

AngularJS ng-repeat Math Pow

javascript - Angular 指令/子指令嵌入在 ng-repeat 中

angularjs - Angular - 返回数据但 ng-repeat 不显示它

javascript - PHP 查询执行没有错误但返回计数 0

javascript - AngularJS 中的可编辑表格单元格