将项目从一个ng重复添加到另一个ng反复
adding and removing items from one ng-repeat to another ng-repeat
我有两个ng重复
<p ng-repeat="Item in List | filter:{category:currentCategory.name} | orderBy:'name' track by Item.name ">
<a ng-click="addItem(Item)"><span class="glyphicon glyphicon-plus"></span>
{{Item.name}}
</a>
</p>
<p ng-repeat="NewItem in NewList | orderBy:'name' track by NewItem.name">
<a>{{NewItem .name}}</a>
<a ng-click="returnItem(NewItem)"><span class="glyphicon glyphicon-trash"></span></a>
</p>
我有两个问题,第一个问题是当它移动到NewList时,List没有被删除,第二个问题是,当我从NewList返回item时,它不会删除与它相关的项目……也就是说,我试图删除最后一个项目,它删除了第一个项目。
这是我的角度
$scope.addItem = function (Item) {
$scope.NewList.push(Item);
$scope.List.splice(Item , 1);
};
$scope.returnItem = function (NewItem) {
$scope.List.push(NewItem);
$scope.NewList.splice(NewItem, 1);
};
我没有使用$index,因为当我过滤列表时,它根本不起作用。
任何选择或建议都将是令人惊叹的!我现在被难住了。
您没有为Array.splice函数提供所需的参数。
Array.slice的第一个参数应该是要从列表中删除的项的索引。目前,您正在为其提供要删除的项目。
您应该首先找到要删除的项的索引。
试试这个
$scope.NewList.push(Item);
var index = $scope.List.indexOf(Item);
if(index !== -1) $scope.List.splice(index , 1);
注意:Array.indexOf不适用于对象数组。由于您确实有一个对象数组,因此您必须遍历列表(使用for循环),并比较name属性以找到要删除的项的索引。
var index = -1;
for (var i = 0; i < $scope.List.length; i++) {
if($scope.List[i].name === Item.name){
index = i;
break;
}
}
相关文章:
- 正在ng重复元素上添加事件
- 通过jQuery添加ng样式属性,angular不更新
- 有没有添加一个ng点击到md背景
- 在控制器中添加$location依赖项时,ng-click停止激发
- angular元素在通过ng类添加类时不起作用
- ng重复向一个元素添加条件类
- 如何在多变量比较的基础上添加ng类
- 添加ng单击到highcharts ng柱状图xAxis标签
- 动态添加 ng 表单和验证
- 如何将静态字符串添加到受信任的 ng-src
- AngularJS:为ng-repeat中的图像添加切换功能
- 在所选元素的父元素上添加“ng-class”
- Ng-Repeat在末尾添加新项目
- 角度JS,将过滤条件添加到ng重复
- Angular ng sortable-如果我在一个栏中添加了一个搜索框,则拖放在两列之间无法正常工作
- 如何在数组中以ng个重复间隔应用新添加的对象
- angular ng类将类添加到除当前类之外的所有类
- ng只重复添加项目一次
- 动态添加ng模式,缺少验证类
- 将默认选项添加到ng-if