无法使用$ http读取未定义的属性“成功”

时间:2014-11-30 12:56:55

标签: javascript angularjs

在我的控制器中我做

topicContent.request().success(function(data){
        $scope.threadContent = data;
      });

在我的工厂里我写了如下:

app.factory('topicContent', ['$http', function($http){
    return
            var query = function() {
                  $http({
                    url: "http://www.corsproxy.com/daysof.me/lowyat/thread.php",
                    method: "GET"
                });
            }

            return {
                request : function(){
                    return query();
                }


            }
        }]);

我已经检查过我的服务没有依赖性错误。知道为什么它说成功是不​​明确的?

3 个答案:

答案 0 :(得分:1)

你没有从query()返回任何内容。尝试:

app.factory('topicContent', ['$http', function($http){

        var query = function() {
              // HERE!!
              return $http({
                url: "http://www.corsproxy.com/daysof.me/lowyat/thread.php",
                method: "GET"
            });
        }

        return {
            request : function(){
                return query();
            }


        }
    }]);

答案 1 :(得分:0)

这应该解决它。

var query = function() {
      return $http({
        url: "http://www.corsproxy.com/daysof.me/lowyat/thread.php",
        method: "GET"
    });
}

删除第2行的返回语句:

app.factory('topicContent', ['$http', function($http){
    return

答案 2 :(得分:0)

或许以下内容可以提供帮助:

在您的控制器中:

topicContent.request().then(function(data){
    $scope.threadContent = data;
  });

在服务中

app.factory('topicContent', ['$http', function($http){

var query = function() {
    **return** $http({
        url: "http://www.corsproxy.com/daysof.me/lowyat/thread.php",
        method: "GET"
    }).then(function(response){
        **return** response.data;
    });
}

return {
    request : query
    }

}]);

注意服务的查询函数中的2个return语句,以及服务中返回的简单对象。