Angular js:ng-model重写了ng-repeat中的项目

Jab*_*baa 2 javascript angularjs angularjs-ng-repeat angularjs-ng-model

我的ng-repeat数组有一个奇怪的问题.

目前,我正在列出一个数组使用,ng-repeat并放置一个编辑按钮来编辑特定项目并保存到数据库.

但问题是当item文本框中的特定ng-repeat项被更改时,项目也会更改.

这是我的问题的小提琴

https://plnkr.co/edit/D5NQitsRg7sCfZBE9IaB?p=preview

更改textfield中的值也会影响其中的值 ng-repeat

Gau*_*ava 6

你正在分配变量的引用,这就是它变化的原因.你必须复制变量.以下是工作示例: -

var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
  
  $scope.items= [
       {id:1,name:'first'},{id:2,name:'second'}
    ];
    
    $scope.editItem = function(index){
    //edit
      $scope.edit = angular.copy($scope.items[index]);
      
    }
});
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
  
  <p ng-repeat="item in items">{{item.id+','+item.name}}
  
  <span ng-click="editItem($index)">Click to Edit {{item.name}} item</span>
  </p>
  
  
  <h2>Edit</h2>
   <input type="text" ng-model="edit.name" />
</div>
Run Code Online (Sandbox Code Playgroud)