保存并更新相同项目的问题

时间:2015-08-27 14:43:11

标签: angularjs restangular

我在创建项目时遇到问题并保存,正常创建,但问题是这样,如果我再次单击SAVE,则创建一个新项目,而不是在此更新中完成甚至创建的项目。

我使用RESTangular和mongodb,却找不到解决方法,因为服务器没有给我任何回复。我试图获取项目的副本,但因为ID等于服务器拒绝。

$scope.section = $stateParams.section;

// create new object item
$scope.item = ApiRestangular.one($scope.section);


$scope.addItem = function(){
    $scope.item.save().then(function(){
             toast.msgToast($scope.section + ' ...item criado!');
    }, function(err){
        toast.msgToast($scope.section + ' ...ocorreu um erro ao criar o item!');
    });
};

1 个答案:

答案 0 :(得分:0)

Put或Post操作(更新或保存)应返回已保存的项目。将$scope.item替换为返回值,它应该第二次更新。如果没有,请明确调用.post.put

$scope.addItem = function(){
    $scope.item.save().then(function(response){
        $scope.item = response.data;
        toast.msgToast($scope.section + ' ...item criado!');
    }, function(err){
        toast.msgToast($scope.section + ' ...ocorreu um erro ao criar o item!');
    });
};

此外,您首先保存的对象通常没有更新它所需的ID。返回的值应具有此ID。