Angular资源调用返回没有错误/数据

时间:2014-09-19 19:50:35

标签: angularjs

这是我的控制器呼叫服务:

  Answers.getAnswers($routeParams.questionId, function(answers) {
    console.log(answers);
    $scope.answers = answers;
  });

这是服务:

angular.module('intquestApp')
  .factory('Answers', function ($resource) {
    return {
        getAnswers: function(questionId) {
          $resource('api/answers?questionid=' + questionId);
        }
    };
  });

我可以确认资源是肯定的,我知道questionId的值是准确的。我在语法上做错了吗?

2 个答案:

答案 0 :(得分:1)

来自angularJS doc

  

重要的是要意识到调用$ resource对象方法会立即返回一个空引用(对象或数组,具体取决于isArray)。

您想要使用的是像there

解释的承诺
Answers.getAnswers($routeParams.questionId).$promise.then(function (result) {
   $scope.answers = result;
})

答案 1 :(得分:1)

从控制器代码的外观来看,您需要在工厂中进行回调。这是工厂代码(你在语法上有错误)

工厂代码:

//Define a module like this
angular.module('intquestApp',[])
  .factory('Answers', function ($resource) {
    return {
        getAnswers: function(questionId,callback) {
          //define resource
          var questionURL = $resource('api/answers?questionid=' + questionId);
          //fire the get call
          questionURL.get().$promise.then(function(answer){
             //return answer in callback
             callback(answer);
          });
        }
    };
  });

控制器代码:

 Answers.getAnswers($routeParams.questionId, function(answers) {
    console.log(answers);
    $scope.answers = answers;
  });