如何从数组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 范围内的数组中删除项目?

如何使用AngularJS从ng-repeat中的数组中删除对象?

列表中的项目数过滤 AngularJS

AngularJS / JavaScript Splice - 总是从数组中删除第一个或最后一个项目

无法从范围数组AngularJS中删除元素

构建混合 angular/angularjs 应用程序 - 如何在 angularjs 应用程序中加载 Angular 模块