0

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

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

这就是节点/快递服务器中的响应方式

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

1 回答 1

3

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

ng-view当您加载部分时,路由配置已经将指定的控制器分配给。

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

这导致同一个控制器被嵌套两次。

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

于 2013-07-03T22:57:43.823 回答