javascript - angularjs - 拼接从范围数组中删除所有对象而不是特定对象

标签 javascript arrays angularjs

我正在尝试创建一个操作,从数据库中删除一个对象及其所属的对象数组,但由于某种原因,它删除了该特定数组的所有范围对象,而不是它应该删除的对象。下面是我的系统。

fact.add_delete = function(scope, func, db, hasCollection, collection, redirect) {
  scope.finish = null;
  scope[func] = function(id) {
    var query = 'DELETE FROM `' + db + '` WHERE id=' + id + '';
    var obj = scope[db].filter(function(value) {
      return (value.id == id)
    });
    $http.post('php/adb/update.php', {
      'query': query
    }).success(function(data) {
      console.log('Deleted from [' + db + '] at id of ' + id + '');
      scope[db].splice(obj);
      if (hasCollection) {
        scope[collection].splice(obj);
      }
      fact.load(scope);
      scope._finish = true;
    });
  };
};

它适用于 ngRepeat 中的对象,但不适用于类似父对象的对象。有什么理由吗?

最佳答案

的结构Array.prototype.splice()

array.splice(start, deleteCount[, item1[, item2[, ...]]])

如果你想删除特定项目,你必须提供索引

尝试这样

var index = scope[db].map(function(value){ return value.id; }).indexOf(id);
scope[db].splice(index,1);

关于javascript - angularjs - 拼接从范围数组中删除所有对象而不是特定对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34388564/

相关文章:

javascript - 如何在用户上传新文件后立即启动进程?

javascript - 将 id 添加到 <circle> 标签不起作用

javascript - Firefox 插件 : HTTP Log that saves to text file with time, 用户名、计算机名未创建文本文件

javascript - 在 AngularJs 中使用一些参数初始化模块

javascript - 如何轻松使用 svg 作为图标?

javascript - 从数组中查找和删除元素

c - for循环中的数组,C99

ios - Swift:在新行将字符串拆分为数组 - 基于 Windows 的文本

angularjs - recaptcha 与 ionic 混合应用程序的集成

javascript - 如何使用ag-grid加载动态列和行?