У меня есть REST API, который считывает/сохраняет данные из базы данных MongoDB. Приложение, которое я использую, извлекает форму и создает из нее объект (работу), а затем сохраняет его в БД. После формы у меня есть кнопка, которая вызывает событие, запускает функцию сохранения моего контроллера, а затем перенаправляет на другой URL-адрес.Перенаправление AngularJS после ng-click
Как только я нажимаю на кнопку, я говорю, что работа хорошо добавлена в БД, но приложение застряло, и перенаправление никогда не вызывается. Однако, если я перезагружу свое приложение, я вижу, что новое «задание» хорошо добавлено в БД. Что в этом плохого ??? Благодаря !
Вот мой код:
Пример HTML (нефрит) Код:
button.btn.btn-large.btn-primary(type='submit', ng:click="save()") Create
контроллер углового модуля:
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');
}
});
};
}
Конфигурация углового модуля:
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));
}
});
};
Является ли POST для конечной точки «job» (vs api/allMyPostedJobs) когда-либо называемой? Если нет, то я не уверен, как ваш код даже ничего экономит для db. – angulord
Да, у меня это в журнале: Опубликована новая работа для пользователя XXX. И, кроме того, сообщение находится в БД при перезапуске серверного приложения ... – GuillaumeA
Просто чтобы очистить, журнал не отображает сообщение «Готов к перенаправлению», которое может произойти непосредственно перед перенаправлением $ location.path() , – GuillaumeA