我有一个数组$scope.multiRoles
,我需要通过点击删除按钮删除其中的值。删除的值应移至另一个数组$scope.role
。我可以通过调用removeRole()
来删除数组,但无法将删除的值移动到另一个数组中。需要帮助。
HTML:
<div ng-if="rolesAdded" class = "col-sm-12 col-xs-12">
<span class="tag label tagStyle newStyling" value ="data" ng-repeat="data in multiRoles track by $index">
<span>{{data}}</span>
<a><i ng-click="removeRoles(index)"class="remove glyphicon glyphicon-remove-sign "></i></a>
</span>
</div>
JS:
$scope.removeRoles = function(index){
if(($scope.multiRoles!== null ) && ($scope.multiRoles.length>1)) {
$scope.multiRoles.splice(index,1);
}
$scope.rolesAdded = true;
};
答案 0 :(得分:1)
您不是在任何地方添加它。由于您正在使用逻辑索引,因此需要在删除之前将其添加到另一个数组中。考虑一下这个
$scope.removeRoles = function(index){
if($scope.multiRoles !== null && $scope.multiRoles.length > 1) {
$scope.role.push($scope.multiRoles[index]);
$scope.multiRoles.splice(index,1);
}
$scope.rolesAdded = true;
};
$scope.role
也应该是现有的array
答案 1 :(得分:1)
$scope.role = [];
$scope.removeRoles = function (index) {
if (($scope.multiRoles !== null) && ($scope.multiRoles.length > 1)) {
$scope.role.push($scope.multiRoles[index])
$scope.multiRoles.splice(index, 1);
}
$scope.rolesAdded = true;
};
答案 2 :(得分:0)
我认为在拼接数组之前推送值可以正常工作。
试试这个:
$scope.removeRoles = function(index){
if(($scope.multiRoles!== null ) && ($scope.multiRoles.length>1)) {
$scope.role.push($scope.multiRoles[index])
$scope.multiRoles.splice(index,1);
}
$scope.rolesAdded = true;
};
答案 3 :(得分:0)
我得到了一个解决方案:
JS:
$scope.removeRoles = function(index,data){
if(($scope.multiRoles!== null ) && ($scope.multiRoles.length>1)) {
var index = $scope.multiRoles.indexOf(data);
$scope.multiRoles.splice(index,1);
$scope.role.push(data);