angularjs - 如何使用 AngularJs 删除数组项属性
问题描述
这是我的 AngularJs 代码
vm.selectedReviewer = [];
// selected on a given reviewer by name
function reviewerSelect(reviewer) {
var idx = vm.selectedReviewer.indexOf(reviewer);
// is currently selected
if (idx > -1) {
vm.selectedReviewer.splice(idx, 1);
}
// is newly selected
else {
vm.selectedReviewer.push(reviewer);
}
}
html代码
<div>
<h3>With a simple array as input data</h3>
<div class="row">
<div class="col-md-6">
<div class="form-group" ng-repeat="reviewer in vm.reviewerList">
<label class="checkbox-inline">
<input type="checkbox" name="selectedFruits[]" value="{{reviewer}}" ng-checked="vm.selectedReviewer.indexOf(reviewer) > -1" ng-click="vm.reviewerSelect(reviewer)"> {{reviewer.Name}}
<input type="text" name="TotalReviewMargin" ng-model="reviewer.ReviewCollectMargin">
<input type="text" name="TotalReviewMargin" ng-model="reviewer.PerReviewCost">
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h4>selected Reviewer</h4>
<pre>{{vm.selectedReviewer|json}}</pre>
</div>
</div>
</div>
这是我的输出
一切都运行良好,但我想从选定的项目中删除一些项目属性。当复选框被选中时,我的预期输出Click Here。这次当项目推入数组时,某些属性未推入数组。这个怎么做?
解决方案
据我了解,您需要删除对象的某些属性。看看这个小提琴。
您可以创建对象的深层副本,这样它就不会影响reviewerList
使用:
var tempObj = JSON.parse(JSON.stringify(reviewer));
delete tempObj.TotalReviewMargin;
this.selectedReviewer.push(tempObj);
所以,虽然你有
this.reviewerList = [
{name: "test", ReviewCollectMargin: 10, PerReviewCost: 12,TotalReviewMargin : 0},
{name: "test2", ReviewCollectMargin: 10, PerReviewCost: 12 ,TotalReviewMargin : 0},
{name: "test3", ReviewCollectMargin: 10, PerReviewCost: 12,TotalReviewMargin : 0}
];
单击复选框时,您将获得:
[
{
"name": "test",
"ReviewCollectMargin": 10,
"PerReviewCost": 12
}
]
请注意TotalReviewMargin
所选值中缺少该属性
推荐阅读
- html - 未收到 Express POST 请求值
- php - 尝试为此 API 创建多个用户时遇到问题?
- nginx - 当 SecRequestBodyAccess On 时,我需要有人帮助我处理 NGINX 和 ModSecurity
- web3js - 无法使用来自哈希的以太 js 正确解码“来自”地址
- go - 为什么取消引用只是为了在 Go 中再次引用
- c++ - 如何成功地将我的 .h 文件实施到我的主 .cpp 文件以使其运行无错误
- redux - 想要从本地存储中获取项目并显示自定义状态(如果有)
- angular - 有一个json数据以及如何在angular 12 html中使用点路径绑定json字段?
- javascript - 在 ASP.NET MVC 中提交表单后如何弹出对话框?
- svelte - Svelte - 使用绑定在一起的两个输入来控制单个商店项目