2016-08-04 15 views
1

Fabrik

app.factory('Shipment', function($resource) { 
    return function(auth_token){ 
    return $resource(basePath + "shipments/:id", { id: '@_id' }, { 
     query:  { method: 'GET', params: {auth_token: auth_token}, isArray:true         }, 
     update:  { method: 'PUT'                     } 
    }); 
    } 
}); 

-Controller

$scope.shipment = new Shipment($scope.shipment) 
$scope.shipment.$save(function() { 
    debugger 
}); 

Es mir diesen Fehler gibt:

$scope.shipment.$save is not a function

Abfrage und erhalten arbeiten gut.

+0

nicht $ zum Beispiel innerhalb der Anrufe nach Artikeln gehen soll sparen Deine 'Get' Methode? Du rufst es auf der Ressource an, nicht wahr? –

+0

Nein, es geht nicht. Es gibt den Fehler vor der Anfrage einleiten –

+0

Ja, das ist, was ich sage. '$ scope.shipment' ist eine Ressource,' $ save' wird für Objekte verwendet, die zurückgegeben werden, nicht für die Ressource. –

Antwort

1

Erklären Sie Ihre Fabrik wie unten.

do -> 
    angular.module('yourModule').factory('prefixShipment', ['$resource', function($resource){ 
    $resource(basePath + "shipments/:id", { id: '@_id' }, { 
     update: { 
     method: 'PUT' 
     } 
    }) 
    }]) 

Jetzt zum Speichern verwenden Sie das folgende Snippet.

shipment = new prefixShipment({shipment: shipment}) 
shipment.save({},function(response){ 
    //your code  
}) 

Vergessen Sie die Aufzeichnung.

prefixShipment.get({ id: $stateParams.shipment_id } , function(data{ 
    $scope.booking = data.booking 
}); 
0

Konstruktor nicht verwenden !! versuchen Sie dies:

$scope.shipment = Shipment($scope.shipment) 
$scope.shipment.$save(function() { 
    debugger 
}); 
+0

funktioniert nicht :( –