ng-click之后的AngularJSredirect

我有一个REST API读取/保存MongoDB数据库的数据。 我使用的应用程序检索表单并从中创build一个对象(作业),然后将其保存到数据库。 表单之后,我有一个button,点击事件触发我的控制器的保存function,然后redirect到另一个url。

一旦我点击button,我说这个工作已经被添加到数据库中,但是应用程序被卡住,redirect从不被调用。 但是,如果我重新加载我的应用程序,我可以看到新的“工作”已被很好地添加到数据库中。 这是怎么回事? 谢谢 !

这是我的代码:

示例html(翡翠)代码:

button.btn.btn-large.btn-primary(type='submit', ng:click="save()") Create 

angular度模块的控制器:

 function myJobOfferListCtrl($scope, $location, myJobs) { $scope.save = function() { var newJob = new myJobs($scope.job); newJob.$save(function(err) { if(err) console.log('Impossible to create new job'); else { console.log('Ready to redirect'); $location.path('/offers'); } }); }; } 

angular度模块的configuration:

 var myApp = angular.module('appProfile', ['ngResource']); myApp.factory('myJobs',['$resource', function($resource) { return $resource('/api/allMyPostedJobs', {}, { save: { method: 'POST' } }); }]); 

在我的nodejs应用程序中的路由:

 app.post('/job', pass.ensureAuthenticated, jobOffers_routes.create); 

最后,我的REST API的控制器:

 exports.create = function(req, res) { var user = req.user; var job = new Job({ user: user, title: req.body.title, description: req.body.description, salary: req.body.salary, dueDate: new Date(req.body.dueDate), category: req.body.category}); job.save(function(err) { if(err) { console.log(err); res.redirect('/home'); } else { console.log('New job for user: ' + user.username + " has been posted."); //<--- Message displayed in the log //res.redirect('/offers'); //<---- triggered but never render res.send(JSON.stringify(job)); } }); }; 

我终于find了解决scheme! 问题是在屏幕后面18英寸的地方….

我修改angular度应用程序控制器像这样:

 $scope.save = function() { var newJob = new myJobs($scope.job); newJob.$save(function(job) { if(!job) { $log.log('Impossible to create new job'); } else { $window.location.href = '/offers'; } }); }; 

诀窍是我的REST api将创build的作业作为json对象返回,而我正在处理它,就像是一个错误! 所以,每次创build一个job对象时,我都返回了一个json对象,因为它是非空的,所以日志消息被触发,我从来没有被redirect。 此外,我现在使用$window.location.href属性来完全重新加载页面。