AngularJS/JavaScript从Localstorage数组中删除特定元素
AngularJS/JavaScript Remove specific element from Localstorage array
我的LocalStorage中有一个数组,我用ngStorage操作它。我正试图从那里删除项目,但当我使用时
$localStorage.someArrayName.splice(id, 1);
只有第一个删除的项目工作正常,然后删除停止工作,我想。
我也试过这样的东西:
if (id === $localStorage.someArrayName.length) {
$localStorage.someArrayName.pop();
}
else if (id === 0) {
$localStorage.someArrayName.shift();
}
else {
$localStorage.someArrayName.splice(id, 1);
}
但我得到了更多的错误结果
我试着从中的例子https://github.com/gsklee/ngStorage像这样:
delete $localStorage.someArrayName[id];
但它删除了这些值,我在本地存储阵列中得到了null,null,null值。然后我甚至得到了关于重复值的ng重复错误:
错误:[ngRepeat:dups]中继器中不允许重复。。。
我无法处理。我不确定这是一个小问题,还是我做错了什么。你能给我一些指导吗?提前谢谢!
这就是我的阵列保存在本地存储中的样子:
[{"content":"something"},{"content":"else"}] //etc...
所以您正在使用ng repeat来表示某个东西,并且您的id就在那里。如果在从数组中删除某个项目时使用$index作为id参数的值,则数组编号将不再相同,id=也不是您期望的值。
您也不需要pop()和shift()方法。
让你的ng重复是这样的:
<element ng-repeat="item in someThing">
{{item.prop}} <childelem ng-click=delete($index)>delete</childelem>
</element>
如果你的功能是:
$scope.delete = function (id) {
$localStorage.someArrayName.splice(id, 1);
};
那么你需要这样的东西:
<element ng-repeat="item in someThing">
{{item.prop}} <childelem ng-click=delete(item)>delete item</childelem>
</element>
和:
$scope.delete = function (item) {
$localStorage.someArrayName.splice($localStorage.someArrayName.indexOf(item), 1);
};
这将删除整个CCD_ 1从您的数组中。
不知道这是否是问题的正确方向,也不知道这是不是情况,但我希望这会对你有所帮助。顺致敬意,
相关文章:
- 从组件状态的数组中删除元素
- 从数组中删除元素的最佳方法是:javascript/jquery
- 正则表达式条件来删除元素
- 使用javascript删除元素时出现的问题
- 当会话存储阵列中存在大量元素时,如何从中删除元素
- 从角度数组中删除元素
- AngularJs localStorage在循环中删除元素
- 在使用jquery插入之前删除元素
- 如何删除元素列表中的类并添加到另一个元素 Jquery.
- 更新分组条形图(转换或删除元素组)
- 向下滚动后如何用同一类逐个删除元素
- 如何防止 jQuery 事件在删除元素时冒泡
- 从jQuery对象中删除元素
- 如何删除元素的结束标记,添加一些文本,然后重新添加标记
- 从画布中删除元素
- 如何解析html以删除元素并只返回其位置的标题
- 使用 V8 从密集数组中删除元素的最佳方法是什么
- 如何使用jquery删除元素
- 根据成员属性从数组中删除元素
- 从中删除元素'的父元素,并将其附加到其他元素