我正在使用 AngularJS 构建我的第一个应用程序,但我遇到了一个小问题。
我有一个表,我在用户数组中呈现每个用户,如下所示:
<table class="table table-hover">
<thead>
<tr>
<th>#</th>
<th>Firstname</th>
<th>Lastname</th>
<th>Email</th>
<th>Company</th>
<th>Active</th>
<th>Edit</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="user in users">
<td>{[{ user.id }]}</td>
<td>{[{ user.firstname }]}</td>
<td>{[{ user.lastname }]}</td>
<td>{[{ user.email }]}</td>
<td>{[{ user.company }]}</td>
<td>Yes</td>
<td><a href="#modalUpdateUser" ng-click="getUser(user)" data-toggle="modal"><i class="icon-pencil"></i></a></td>
</tr>
</tbody>
</table>
这工作得很好,因为我在我的 controller.js 中有一个数组 $scope.users 填充了用户。
问题是最后一个带有 ng-click="getUser(user)" 的单元格,它打开一个 ModalBox 并用现有用户数据填充输入。
$scope.getUser = function(user) {
$scope.user = user;
};
在 ModalBox 中,所有输入字段都有 ng-model="user.firstname" 等。所以这当然将 ModalBox 中的输入字段绑定到我的表中的用户,并在我更改表中的数据时立即更改表中的数据模态框。
但我想要的是编辑 ModalBox 中的数据,然后如果我在 ModalBox 中按“保存”,则仅更改表中的用户。
所以我的问题是,我可以从表中的 ng-repeat 中获取用户对象并将其交给绑定到我的 ModalBox 输入的 $scope.user 而不将它们全部绑定在一起吗?
提前致谢,
- 拉斯穆斯·克努森
解决方案解决方案是使用 angular.Copy 在没有绑定引用的情况下传输对象。这里的工作示例:http: //docs.angularjs.org/guide/forms