【问题标题】:Is it possible to delete an item by taking one of the item in array using javascript?是否可以通过使用javascript获取数组中的一项来删除一项?
【发布时间】:2016-03-17 09:40:19
【问题描述】:

我已经使用角度材料模式窗口来确认从 ng-repeat 创建的项目中删除项目,但我不想删除带有 index 的项目,但我需要在 @987654324 的帮助下删除@。

$scope.users = [{
  _id:'1',
  firstName: 'Obi-Wan',
  lastName: 'Kenobi'
 }, {
  _id:'2',
  firstName: 'Boba',
  lastName: 'Fett'
 }, {
  _id:'3',
  firstName: 'Han',
  lastName: 'Solo'
}];

我在这里使用了_id,在这个id的帮助下,我需要删除那个特定的项目。
这是在索引的帮助下删除项目的小工具。我在_id的帮助下需要它。谁能帮帮我吗。
Plunker here

【问题讨论】:

  • 为什么要用_id 删除它?已经有一个选项可用。
  • 因为,我需要使用 id 向服务器发送删除请求。
  • 你有user 对象。您可以使用它来获取_id 并使用它发送delete 请求,并使用您在代码中使用的spilce 在此处删除对象。
  • plnkr.co/edit/MEvoPyYtGEZ474GrToKe?p=preview 这是更新的插件,请检查。我要身份证了。但我无法删除该特定项目。它正在删除另一个项目。
  • 使用$http 会非常简单。它会返回一个承诺所以你将有两个选择。 successfail。所以你可以在你的success 方法中splice。我应该举个例子吗?

标签: javascript angularjs modal-dialog angular-material


【解决方案1】:

因此,当您在代码中显示 delete 函数中的 user 对象时,您可以使用splice 方法删除该对象并发送delete request,您可以使用$http 服务,如下所示。

$scope.delete= function(user){
               $http.delete('/users/' + user._id, {params: {userId: user._id}})  
                    .then(function (response) {
                      if(response.status == 200){
                         var index = $scope.users.indexOf(user);
                         $scope.users.splice(index, 1);
                      }
               })
};

【讨论】:

  • 感谢您的回答。另一个疑问。如何在自定义对话框中获取 id。请检查此plunker。我无法在模板和控制台中获取 id。你能帮帮我吗
  • 我认为这是单独的问题。可以单独问吗?
  • 它显示您已达到问题限制。所以我不能问另一个问题。你能帮帮我吗
  • 我很乐意提供帮助。但我需要适当的描述作为一个问题。
  • 谢谢。请检查github.com/angular/material/issues/7628。如果你不明白,请告诉我
猜你喜欢
  • 1970-01-01
  • 2016-12-06
  • 1970-01-01
  • 2010-12-29
相关资源
最近更新 更多