首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从AngularJS作用域中的数组中删除项?

如何从AngularJS作用域中的数组中删除项?
EN

Stack Overflow用户
提问于 2013-01-10 12:04:10
回答 7查看 258.2K关注 0票数 153

简单的待办事项列表,但每个项目的列表页面上都有一个删除按钮:

相关模板HTML:

代码语言:javascript
复制
<tr ng-repeat="person in persons">
  <td>{{person.name}} - # {{person.id}}</td>
  <td>{{person.description}}</td>
  <td nowrap=nowrap>
    <a href="#!/edit"><i class="icon-edit"></i></a>
    <button ng-click="delete(person)"><i class="icon-minus-sign"></i></button>
  </td>
</tr>

相关的控制器方法:

代码语言:javascript
复制
$scope.delete = function (person) {
  API.DeletePerson({ id: person.id }, function (success) {
    // I need some code here to pull the person from my scope.
  });
};

我试过$scope.persons.pull(person)$scope.persons.remove(person)

虽然数据库已成功删除,但我不能从作用域中拉出此项目,并且我不想对服务器进行方法调用以获取客户端已有的数据,我只想将此人从作用域中删除。

有什么想法吗?

EN

回答 7

Stack Overflow用户

发布于 2013-01-10 12:08:34

您必须在persons数组中找到person的索引,然后使用数组的splice方法:

代码语言:javascript
复制
$scope.persons.splice( $scope.persons.indexOf(person), 1 );
票数 310
EN

Stack Overflow用户

发布于 2013-09-12 02:07:47

代码语言:javascript
复制
$scope.removeItem = function() {
    $scope.items.splice($scope.toRemove, 1);
    $scope.toRemove = null;
};

这对我来说很有效!

票数 7
EN

Stack Overflow用户

发布于 2015-04-15 02:29:08

对于,@Joseph Silber的可接受答案不起作用,因为indexOf返回-1。这可能是因为Angular添加了一个hashkey,这对于我的$scope.items和我的项目是不同的。我试图用angular.toJson()函数来解决这个问题,但它不起作用:(

啊,我找到原因了..。通过查看$scope.items,我使用chunk方法在表中创建了两列。抱歉的!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14250642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档