When Restangular returns resouce array\object it adds some methods on the object such as put
which has been wired up to update the object on put call to server.
In second case you are assigning item=$scope.singular
. $scope.singular
may not be a Restangular object and hence does not work.