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