【问题标题】:How to delete item from array angularjs?如何从数组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 部分的更多代码

标签: arrays angularjs oop


【解决方案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?

    【讨论】:

      猜你喜欢
      • 2021-10-19
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 2016-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多