Javascript 使用node express js在AngularJS中重复ajax调用

Javascript 使用node express js在AngularJS中重复ajax调用,javascript,ajax,angularjs,express,Javascript,Ajax,Angularjs,Express,我开始使用AngularJS,并用nodejs设置服务器,一切都很顺利,但当我打开chrome developers tools时,我看到应用程序为获取node/mongo发送的json数据进行了两次ajax重复调用。 首先,我认为模板jade是问题所在,但在使用纯html之后,工作方式也是一样的 有什么想法吗 以下是AngularJS中的代码 angular .module('foro') .config(function($routeProvider){ $routeProvide

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

有什么想法吗

以下是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;
      });
这就是node/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”

当您加载部分组件时,路由配置已将指定的控制器分配给
ng视图

      $routeProvider
        .when("/",{
            templateUrl : "/partials/questions.html",
            controller: "QuestionsCtrl"
        })
这将导致同一控制器嵌套两次


questions.html中的
这一行中删除ng控制器部分。问题是您的部分代码中有
ng controller=“QuestionsCtrl”

当您加载部分组件时,路由配置已将指定的控制器分配给
ng视图

      $routeProvider
        .when("/",{
            templateUrl : "/partials/questions.html",
            controller: "QuestionsCtrl"
        })
这将导致同一控制器嵌套两次


问题中的这行
中删除ng控制器部件。html

非常感谢完成移动问题的解决!非常感谢完成移动问题的解决!