2015-08-08 52 views
0

我正在使用MEAN堆棧。我想補充一個PUT請求到我的$ ngResource,我得到一個錯誤:角度ngresource更新方法不是函數

TypeError: conService.update is not a function 

at m.$scope.joinCon (http://localhost:3000/javascripts/chirpApp-ngresource.js:217:14) 

at lb.functionCall (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.min.js:200:64) 

at Hc.(anonymous function).compile.d.on.f (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.min.js:216:394) 

at m.$get.m.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.min.js:126:250) 

at m.$get.m.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.min.js:126:476) 

at HTMLButtonElement.<anonymous> (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.min.js:216:446) 

at HTMLButtonElement.c (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.min.js:32:389) 

我的代碼

//My factory 
app.factory('conService', function ($resource) {return $resource('/api/cons', {'update': { method: 'PUT' }});}); 

//My update 
conService.update({conName:$scope.cons.conName},$scope.cons);}; 

//My api to get all conventions 
.get(function (req, res) {Con.find(function (err, cons) {if (err) { return res.send(500, err); }return res.send(cons);});}) 

誰能幫我找出我在更新的思念?由於

+0

,非get函數的前綴爲'$'。 'conService。$ update'工作嗎? – Claies

+0

不幸的是,沒有工作。 – Trewaters

+0

加入{}停止了該錯誤。這裏是更新的代碼行... //我的工廠 app.factory('conService',function($ resource){return $ resource('/ api/cons',{},{'update':{method :'PUT'}});});現在我收到了一個404錯誤,但我想我可以跟蹤它。 – Trewaters

回答

0

因爲它是一個工廠,你應該在控制器代碼實例使用它之前有以下幾點:

var cs = new conService(); 
cs.update(/*params here*/); 

有關詳細信息閱讀那些偉大的職位:AngularJS: Service vs provider vs factoryAngularJS : Factory and Service?

在`$ resource`
+0

我試着直接翻譯你發佈到我的代碼,但它不工作。 (編輯:我仍然得到關於我的更新的無功能錯誤)我會閱讀你今晚建議的鏈接。感謝您的附加信息! – Trewaters