2016-04-05 11 views
0

角度ng-resourceモジュールを使用してオブジェクトに簡単な保存を呼び出そうとしています。ngResourceモジュールを使用してデータを投稿しようとしています

angular.module('testApp', ['ngResource']) 
.controller('testController', function($scope, Stock) { 
    $scope.stock = {}; 
    $scope.stock.id = 1; 
    $scope.stock.name = "Kellog"; 

    $scope.submit = function() {  
     Stock.save($scope.stock); 
    }; 
}); 

angular.module('testApp') 
.factory('Stock', function($resource) { 
    return $resource('api/stock'); 
    } 
); 

が、私は私のデータが掲載(POST動詞)が、何も起こらない持っていることを期待し、代わりに私は次のエラーました:

TypeError: Cannot read property 'id' of undefined

答えて

0

一つは、最初のリソースオブジェクトを作成する必要があります

var newStock = new Stock($scope.stock); 

newStock.$save(); 
+0

私はあなたの提案を試みたが、運は、ここで私が得た新しいエラーではありません:TypeError:ストックはコンストラクタではありません – Carthusianorum

-1

私の最初のメッセージには、私が使っていたjsライブラリが欠落しているという重要な情報があります。その場合、ng-resource.jsは最新の角度リビジョン(1.5.3)と互換性がありません。代わりに、angle-resource.jsを使用する必要があります。

私は自分のコードにはほとんど変化(約束の使用)を行なったし、すべてが、その後、ので、ここでスムーズに行ったが、私の答えです:

angular.module('testApp', ['ngResource']) 
.controller('testController', function($scope, Stock) { 
    $scope.stock = {}; 
    $scope.stock.id = 1; 
    $scope.stock.name = "Kellog"; 


    $scope.submit = function() { 
     new Stock($scope.stock).$save()  
     .then(function(response) { 
     $scope.stock = response; 
     }) 
    }; 
}); 

angular.module('testApp') 
.factory('Stock', function($resource) { 
    return $resource('api/stock'); 
    } 
); 
関連する問題