angularjs Вложенная задача Ng-Repeat с ng-моделью - PullRequest
0 голосов
/ 15 января 2019

Я использую ng-repeat в ng-repeat, как следует

  <tbody>
        <tr ng-repeat="track in machine.noteMatrix2">
            <td>--</td>
            <td ng-repeat="step in track">
                <input type="checkbox" ng-model="track[$index].value"> 
   {{step.value}}</td>
        </tr>
  </tbody>

также ниже образец http://jsfiddle.net/rskLy/11/

проблема в том, что когда я обновляю трек [$ index] .value для отдельной записи в machine.noteMatrix2, он получает обновление во всех узлах в machine.noteMatrix2

есть ли решение для этого ??

EDIT

data

    machine.noteMatrix = [
        [false, false, false],
        [false, true, false],
        [false, false, false]
    ];

1 Ответ

0 голосов
/ 16 января 2019

Вместо использования track[$index].value вы должны использовать step, а также отслеживать оба ngRepeat по $index

var app = angular.module("app", []);

app.controller("MainCtrl", function($scope) {
  $scope.noteMatrix = [
    [false, false, false],
    [false, true, false],
    [false, false, false]
  ];
});
<html ng-app="app">

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>

</head>

<body ng-controller="MainCtrl">
  {{noteMatrix}}
  <table>
    <tbody>
      <tr ng-repeat="track in noteMatrix track by $index">
        <td>-{{$index}}-</td>
        {{track}}
        <td ng-repeat="step in track track by $index">
          <input type="checkbox" ng-model="step"> {{step}}
        </td>
      </tr>
    </tbody>
  </table>
</body>

</html>
...