【问题标题】:AngularJS http.get not returning any dataAngularJS http.get 不返回任何数据
【发布时间】:2015-03-22 20:22:02
【问题描述】:

我对 AngularJS 和 Coding 还很陌生,但我对此有一些指导,但我的 http.get 没有返回任何数据。我在 .js 文件中嵌入了以下工厂和控制器。并在我希望从 JSON 文件返回日期的 html 文件中有相应的“ng-repeat”。当我查看 Chrome 开发人员工具范围内的详细信息时,它显示范围已返回,但具有以下内容

{ 成员:空 }

Factory和Controller代码如下

app.factory('MemberFactory', ['$http' , function($http)
{
        var api = 
        {
            getMembers : function() 
            {
                return $http.get('../json/members2.json')            
            }, 
            getMembers : function(membernumber) 
            {  // NEW
                 return $http.get('../json/' + membernumber + '.json')
            }
        }
        return api
}])


app.controller('homeController', 
['$scope', '$location', '$routeParams', 'GetTheMember', 
function($scope, $location, $routeParams, GetTheMember) {
             GetTheMember.getmembers($routeParams.membernumber)
                .success(function(data) {
                   $scope.member = data
                   })
                .error(function(err) {
                    $location.path('./404') 
                  })
             $scope.setImage = function(img) {
                  $scope.img = img
               }
      }])

【问题讨论】:

  • JS 中不能有两个同名的函数。例如,在 java 中没有你可能知道的多态性。您的第二个 MemberFactory 函数,即带参数的函数,可能应该命名为 getMember

标签: angularjs http get


【解决方案1】:

您的工厂名为MemberFactory。这就是您应该在控制器中而不是 GetTheMember 中注入的内容。另请注意,属性名称区分大小写。您必须致电 getMembers 而不是 getmembers。但是因为该函数需要一个成员 ID,所以最好将其重命名为 getMember。这样它就不会覆盖其他 getMembers 函数。

app.controller('homeController', 
['$scope', '$location', '$routeParams', 'MemberFactory', 
function($scope, $location, $routeParams, MemberFactory) {
             MemberFactory.getMember($routeParams.membernumber)
                .success(function(data) {
                   $scope.member = data;
                })
                .error(function(err) {
                    $location.path('./404');
                })

             $scope.setImage = function(img) {
                $scope.img = img;
             }
      }])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    • 2014-07-30
    • 2017-06-02
    • 2016-12-24
    • 1970-01-01
    • 2015-06-29
    相关资源
    最近更新 更多