Удаление значений из одного массива и перемещение в другой массив
У меня есть массив $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;
};
4 ответа
Решение
Я думаю, что толкание значения до объединения массива может работать.
Попробуй это:
$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.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
$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;
};
Я получил решение:
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);