gpt4 book ai didi

javascript - ng-click 后 AngularJS 重定向

转载 作者:行者123 更新时间:2023-11-30 12:55:36 24 4
gpt4 key购买 nike

我有一个 REST API,可以从 MongoDB 数据库读取/保存数据。我使用的应用程序检索一个表单并从中创建一个对象(一个作业),然后将它保存到数据库中。在表单之后,我有一个按钮,点击事件触发我的 Controller 的保存功能,然后重定向到另一个 url。

单击按钮后,我说作业已很好地添加到数据库中,但应用程序卡住了,并且从未调用重定向。但是,如果我重新加载我的应用程序,我可以看到新的“工作”已经很好地添加到数据库中。这有什么问题???谢谢!

这是我的代码:

示例 html(jade) 代码:

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

Angular 模块的 Controller :

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 模块的配置:

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 的 Controller :

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));
}
});
};

最佳答案

我终于找到了解决方案!问题出在屏幕后面 18 英寸处....

我像这样修改了 Angular 应用程序 Controller :

$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 将创建的作业作为 json 对象返回,我正在处理它,就像它是一个错误一样!因此,每次我创建一个作业对象时,我都会返回一个 json 对象,并且由于它是非空的,所以日志消息被触发并且我从未被重定向。此外,我现在使用 $window.location.href 属性来完全重新加载页面。

关于javascript - ng-click 后 AngularJS 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19286270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com