@sudden_man
bcvbcvbc

Как не обновлять весь список после дбавления\удаления элемента (Angular, $http)?

Всем привет
знаю что вопрос туповат, но все же
Ситуация типичная:
Есть rest. Делаю запрос на получение всех элементов:
//Controller
$scope.getDevices = function(){
		$scope.loading = true;
		devicesService.getDevices($scope.curPage).then(function(res){
			$scope.divices = res.data.listOnPage;
			$scope.loading = false;
		})
	}
	$scope.getDevices();
//Service
devices.getDevices = function(curPage){
		return $http.get('http://localhost:8080/devices?page='+curPage+'');
	}


Есть аналогичное для добавления:
//Controller
$scope.addDevice = function(){
		$scope.addNew = false;
		devicesService.addDevice($scope.newDevice).then(function(res){
			$scope.getDevices();
			$scope.newDevice = '';
		}, function(err){
			console.error(err);
		})
	}

//Service
devices.addDevice = function(data){
		return $http.post('http://localhost:8080/devices', data);
	}


Как сделать так, чтобы после добавления нового элемента, мне не приходилось обновлять всею страницу, а только пушить этот элемент. Просто тут жесткая каша, и я понимаю что надо пушить в $scope.devices ответ ( потому что приходит с сервера именно новый добавленный элемент )
Но я ж не могу в методе addDevice использовать $scope.devices

С удалением тоже самое, только там в ответ ничего не приходит
как быть?
подскажите
просто натолкните и все)
спасибо заранее
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
yarkov
@yarkov Куратор тега JavaScript
Проект "Жизнь после смерти" - lifeafterdeath.ru
//Controller
$scope.addDevice = function(){
    $scope.addNew = false;
    devicesService.addDevice($scope.newDevice).then(function(res){
      $scope.getDevices(); //<- убрать
      $scope.devices.push(res.device); //<- добавить
      $scope.newDevice = '';
    }, function(err){
      console.error(err);
    })
  }

//Service
devices.addDevice = function(data){
    return $http.post('http://localhost:8080/devices', data);
  }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы