gpt4 book ai didi

javascript - 使用 Node Express JS 在 AngularJS 中重复 ajax 调用

转载 作者:行者123 更新时间:2023-11-28 20:25:39 25 4
gpt4 key购买 nike

我开始使用 AngularJS,并使用 nodejs 设置服务器,一切都很顺利,但是当我打开 chrome 开发人员工具时,我看到该应用程序进行两个 ajax 重复调用以获取 node/mongo 发送的 json 数据。首先我认为模板jade是问题所在,但是使用纯html后,以相同的方式工作

a demo in appfog

有什么想法吗?

这是 AngularJS 中的代码

angular
.module('foro')
.config(function($routeProvider){
$routeProvider
.when("/",{
templateUrl : "/partials/questions.html",
controller: "QuestionsCtrl"
})
.when("/questions/:questionId",{
templateUrl: "/partials/singleQuestion.html",
controller: "SingleQuestion"
})


})
.controller("QuestionsCtrl", function($scope, $http){

$http.get("/questions").success(function(data){
$scope.questions = data;

});
})
.controller("SingleQuestion", function($scope, $http, $routeParams){
var questionId = $routeParams.questionId;

$http.get("/question/"+questionId).success(function(data){
$scope.question = data;
$scope.votes = data[0].votes;
});

这是节点/express 服务器中的响应方式

app.get('/questions', function (req, res) {
Question.find({}).sort({_id:"descending"}).execFind(function(err,docs){
if(err) res.json(err)
res.json(docs)
});
});

app.get('/question/:questionId', function (req, res) {
var questionId = req.params.questionId;

Question.find({_id: questionId},function(err,docs){
if(err) res.json(err)
res.json(docs)
});
});

最佳答案

问题是你有ng-controller="QuestionsCtrl"在你的部分。

路由配置已将指定 Controller 分配给 ng-view当您加载部分时。

      $routeProvider
.when("/",{
templateUrl : "/partials/questions.html",
controller: "QuestionsCtrl"
})

这会导致同一 Controller 嵌套两次。

从该行删除 ng-controller 部分 <div ng-controller="QuestionsCtrl">questions.html

关于javascript - 使用 Node Express JS 在 AngularJS 中重复 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17459315/

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