Search code examples
angularjsngresourceangularjs-ng-resource

refactoring "factories" into a $resource


Hi I have converted a previous function for editing records in an api into the following resource:

app.factory("Wine", function($resource){
    return $resource("http://greatwines.8000.com/wines:id", {
        //id as a variable
        id: "@id"
     },
     {
         update: {
             method: "PUT"
         }
    });
});

I now want to use this by triggering a form with the "wine" records to edit with the following CTA inside the wine ng-repeat for each wine:

   <a href="#/wines/{{wine.id}}" class="btn btn-default">Edit Wine</a>

In my controller I pass the "Wine" resource:

app.controller("editWineCtrl", function ($scope, $http, $routeParams, Wine, $location){


   Wine.get({ id: $routeParams.id }, function(wine){
        $scope.wine = wine;
   });

...

However, in spite of the form URL returning the ID:

http://greatwines.8000.com/#/wines/1323

None of the fields i.e. :

div class="margin-top-20">
                    <input type="text" class="form-control" ng-model="wine.year" />
                </div>
                <div class="bold margin-top-20">
                    Grapes
                </div>
                <div class="margin-top-20">
                    <input type="text" class="form-control" ng-model="wine.grapes" />
                </div>

Are being populated. Am I using the resource int he correct way?


Solution

  • There is a typo in url

    wines:id

    It should be

    wines/:id