如何从数组angularjs中删除项目?
Posted
技术标签:
【中文标题】如何从数组angularjs中删除项目?【英文标题】:How to delete item from array angularjs? 【发布时间】:2016-10-30 14:02:01 【问题描述】:为什么我不能从数组帖子中删除项目?
删除项目的html标签
html tag
<span ng-click="remove($index)"> delete</span>
//AngularJS method where I try to delete item
blog.remove = function(index)
blog.posts.splice(index, 1);
;
//Angular array posts
blog.posts = [
"title": "Blog Post One",
"comments": [
"body":"Lorem ipsum dolor sit amet, consectetur adipisicing elit. ",
"author": "trollguy87"
]];
哪里有问题?
【问题讨论】:
一种可能性是您在删除函数中传递的索引是错误的。尝试在该 splice 语句之前通过 console.log 查看索引。 可能会发布更多代码。仅通过查看这些片段很难准确判断出什么问题。我看到的问题是remove
在范围内被调用。但是您的定义在博客本身上。那么,不应该是blog.remove($index)
吗?还有,$index
是什么?来自某种repeat
我假设
请发布包含ng-repeat
部分的代码,目前很难弄清楚您如何管理$scope/vm
如果只有var blog = $scope;
,此代码可能是正确的,因为您通过ng-click="remove()"
调用$scope.remove
请分享您程序中 html 部分的更多代码
【参考方案1】:
如果您使用的是ng-repeat
,那么这会有所帮助:
<div ng-repeat="key in posts"> <!-- This will use your blog.posts -->
<button ng-click="posts.splice($index, 1)">
key.title
</button>
</div>
【讨论】:
【参考方案2】:尝试将项目传递给函数并从项目中获取索引。
正如在下面的线程中提到的。
How do I delete an item or object from an array using ng-click?
【讨论】:
以上是关于如何从数组angularjs中删除项目?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用AngularJS从ng-repeat中的数组中删除对象?
AngularJS / JavaScript Splice - 总是从数组中删除第一个或最后一个项目
构建混合 angular/angularjs 应用程序 - 如何在 angularjs 应用程序中加载 Angular 模块