在AngularJS中调用$ save方法

我正在寻找一个callback在我的$save方法在angularjs中使用。

我正在发送一篇博文到node.js后端,并通过了recaptchavalidation。

正如$resource文档中的操作不起作用:

非GET实例操作:实例。$ action([parameters],[success],[error])

 var post = new Posts({ title: this.title, content: this.content, response: this.model.captcha.response, challenge: this.model.captcha.challenge }); post.$save({}, function(addedpost) { $location.path('posts/' + addedpost._id); }, function(error) { console.log(error); vcRecaptchaService.reload(); }); 

在服务器中,我使用node.js的simple_recaptcha模块来validation请求中打包的recaptcha挑战和响应。

 var verifyRecaptcha = function(req,res,next){ var privateKey = 'XXXXXXXXXXXXXXXXXXXXXXXX'; var ip = req.ip; var challenge = req.body.challenge; var response = req.body.response; simple_recaptcha(privateKey, ip, challenge, response, function(err) { if(err) return res.send(401,err.message); console.log('Recaptcha verified!'); }); next(); }; 

所以当validation码是正确的,它应该继续,并添加后,数据库,如果不是,后端响应401和前端angular度js应该认识到这是错误,并刷新recaptcha。

我错过了什么?

有时我也会迷失在AngularJS的(通常非常好的)文档中。 在我的情况下,我在这里find了一个解决scheme: 如何添加callback资源方法in-angularjs

您可以让服务器在POST上进行工作并分析响应,如下所示:

  post.$save( function(data){ console.log(JSON.stringify(data)); if(data.error_message){ // ... error_message comes from the server } else { // ... } } );