gpt4 book ai didi

javascript - 在 Each 循环中将事件附加到基于 Angularjs 的 UI 中的元素

转载 作者:行者123 更新时间:2023-12-03 06:41:29 27 4
gpt4 key购买 nike

我在 AngularJS 中有一个对象数组,其中包含:

  • 员工评论
  • 经理评论
  • 参与者评论。
[{
"id": "1",
"title": "Question1",
"ManagerComment": "This was a Job Wel Done",
"EmployeeComment": "Wow I am Surprised",
"ParticipantArray": [{
"id": "1",
"comment": "Oh i Dont think So"
}, {
"id": "2",
"comment": "Oh i believe the same"
}

]
}, {
"id": "2",
"title": "Question 2",
"ManagerComment": "This was a Job Wel Done 1",
"EmployeeComment": "Wow I am Surprised 1",
"ParticipantArray": [{
"id": "1",
"comment": "Oh i Dont think So 1"
}

]
}];

我迭代此对象以获取带有来自对象的注释的文本区域。

我必须在每个文本区域前面显示“保存/编辑”按钮才能编辑评论、更新评论或添加任何新评论。

我不知道如何做 dat,因为我正在寻找一个类似的对象,它只适用于单个文本区域而不是所有文本区域字段。任何建议。

最佳答案

这是一个示例 plnkr展示如何做到这一点。

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

app.controller('MainCtrl', function($scope) {
$scope.tableData = [{
"id": "1",
"title": "Question1",
"ManagerComment": "This was a Job Wel Done",
"EmployeeComment": "Wow I am Surprised",
"ParticipantArray": [{
"id": "1",
"comment": "Oh i Dont think So"
}, {
"id": "2",
"comment": "Oh i believe the same"
}

]
}, {
"id": "2",
"title": "Question 2",
"ManagerComment": "This was a Job Wel Done 1",
"EmployeeComment": "Wow I am Surprised 1",
"ParticipantArray": [{
"id": "1",
"comment": "Oh i Dont think So 1"
}

]
}];

$scope.tableDataCopy = angular.copy( $scope.tableData );

$scope.save = function() {
$scope.tableData = angular.copy( $scope.tableDataCopy );
}

});

基本上 Controller 只包含您的数据及其副本,以便我们不会直接写入模型(因此不需要保存功能)。

<!DOCTYPE html>
<html ng-app="plunker">

<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.9/angular.js" data-semver="1.4.9"></script>
<script src="app.js"></script>
</head>

<body ng-controller="MainCtrl">
<div ng-repeat="data in tableDataCopy">
Manager comment:
<textarea ng-disabled="!edit" ng-model="data.ManagerComment"></textarea>

<br>
Employee comment:
<textarea ng-disabled="!edit" ng-model="data.EmployeeComment"></textarea>
<div ng-repeat="participant in data.ParticipantArray">
Participant {{participant.id}}: <textarea ng-disabled="!edit" ng-model="participant.comment"></textarea>

</div>
<button ng-click="save()">Save</button><button ng-click="edit = !edit">Edit</button>
<br>
<br>
<br>
</div>

{{tableData}}
<br>
<br>
{{tableDataCopy}}
</body>

</html>

这只是一个非常简单的示例,说明如何使用转发器、数据绑定(bind)和单击事件。

我相信您将能够根据此示例的具体需求更改逻辑。

编辑:使用单独的控件更新了 plnkr

<!DOCTYPE html>
<html ng-app="plunker">

<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.9/angular.js" data-semver="1.4.9"></script>
<script src="app.js"></script>
</head>

<body ng-controller="MainCtrl">
<div ng-repeat="data in tableDataCopy track by $index">
Manager comment:
<textarea ng-disabled="!editManager" ng-model="data.ManagerComment"></textarea>
<button ng-click="tableData[$index].ManagerComment = data.ManagerComment">Save</button><button ng-click="editManager = !editManager">Edit</button>
<br>
Employee comment:
<textarea ng-disabled="!editEmployee" ng-model="data.EmployeeComment"></textarea>
<button ng-click="tableData[$index].EmployeeComment = data.EmployeeComment">Save</button><button ng-click="editEmployee = !editEmployee">Edit</button>

<div ng-repeat="participant in data.ParticipantArray">
Participant {{participant.id}}: <textarea ng-disabled="!participant.edit" ng-model="participant.comment"></textarea>
<button ng-click="tableData[$parent.$index].ParticipantArray[$index].comment = participant.comment">Save</button><button ng-click="participant.edit = !participant.edit">Edit</button>
</div>
<br>
<br>
<br>
</div>

{{tableData}}
<br>
<br>
{{tableDataCopy}}
</body>

</html>

关于javascript - 在 Each 循环中将事件附加到基于 Angularjs 的 UI 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37937899/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com