2014-09-06 55 views
0

我被困在这里,我不知道我缺少什么或如何进一步调试。我继续得到这个错误:当我从ng-click事件中调用它时'updateMemberServiceFactory未定义'。请指教。如果这是一个简单的错字,我道歉,我只是不明白什么是错的。我试图调用我的控制器上的PUT方法,但它永远不会被调用。 AngularJS新手。谢谢。AngularJS factory undefined error

securityApp.factory('updateMemberServiceFactory', function ($http) { 

    function update(memberServiceID) { 

     $http({ method: 'PUT', url: 'http://localhost:62791/api/MemberServices/', data: { memberServiceID: memberServiceID } }) 
      .then(function (result) { 
       alert('success'); 
      }, function (errorResponse) { 

     }); 
    }; 

}); 

securityApp.controller('memberServicesController', function ($scope, $http, $routeParams, $location, getTokenFromServer, updateMemberServiceFactory) { 

    var id = $routeParams.memberID; 

    $scope.username = '[email protected]'; 
    $scope.password = 'SuperPass1!'; 

    getTokenFromServer.getToken($scope.username, $scope.password).then(function (data) { 
     $scope.token = data; 

     $http({ method: 'GET', url: '/api/MemberServices/' + id + '?access_token=' + $scope.token, headers: { 'Authorization': 'Bearer ' + $scope.token } }) 
      .success(function (response) { 

       $scope.memberServices = ""; 
       $scope.memberServices = response; 

       $http({ method: 'GET', url: '/api/Members/' + id + '?access_token=' + $scope.token, headers: { 'Authorization': 'Bearer ' + $scope.token } }) 
        .success(function (response) { 
         $scope.member = response; 
        }); 

       $http.get('/api/ServiceTypes/') 
        .then(function (response) { 
         $scope.serviceTypes = response.data; 
        }); 
      }); 
    }); 

    $scope.updateMemberService = function() {   
     updateMemberServiceFactory.update({ memberServiceID: memberServiceID }, null, function() { 
      alert('update called'); 
     }); 
    }; 

}); 

<a href="" style="text-decoration: none;" ng-click="updateMemberService(memberService.memberServiceID)"><i class="fa fa-save"></i></a> 
+0

“错误:updateMemberServiceFactory是未定义 [email protected]://本地主机:62791 /脚本/应用/ Security.js:357:9 – 2014-09-06 08:04:39

回答

3

当您使用someApp.factory(someFunction)的一些someFunction应该返回在需要时将被注入的对象。

你的情况:

securityApp.factory('updateMemberServiceFactory', function ($http) { 

    function update(memberServiceID) { 

     $http({ method: 'PUT', url: 'http://localhost:62791/api/MemberServices/', data: { memberServiceID: memberServiceID } }) 
      .then(function (result) { 
       alert('success'); 
      }, function (errorResponse) { 

     }); 
    }; 

    return { // <---- this object will get injected, when required 
     update : update 
    } 

}); 
+0

非常感谢你! – 2014-09-06 23:28:31