2015-07-10 59 views
0

屬性「後」我有我的服務有以下功能:從angularjs服務調用的WebAPI - 無法獲取的未定義或空引用

myapp.service('addParentService', function ($http) { 
    vm.returnParent = function ($http) { 
     for (i in vm.parent) { 
      //alert('getValues : ' + vm.parent[i].name); 
     } 


     var data = { name: 'Jeff', email: '[email protected]', phone: '5551212', carrierName: 'ATT' }; 
     $http.post(
      'http://localhost:10000/api/people/PostRegister/', 
      JSON.stringify(data), 
      { 
       headers: { 
        'Content-Type': 'application/json' 
       } 
      } 
     ).success(function (data) { 
      alert(result); 
     }); 

}); 

我遇到這個問題,我沒有注入$ HTTP 。現在,當我運行這個功能,我得到以下錯誤:

Unable to get property 'post' of undefined or null reference

這是我的控制器:

myapp.controller('AddParentController', function ($scope,$http, addParentService) { 
    $scope.addParentService = addParentService; 
}); 
+0

您是否在服務/控制器中注入'$ http'? –

+0

@DavidBarker - 我用我的控制器代碼更新了我的問題。我做得對嗎? – webdad3

+0

不,沒有理由向控制器注入'$ http'(或者你沒有顯示全部內容) –

回答

1

你需要注入$http在您服務,如果您還沒有。如果你沒有從那裏調用它,那麼沒有必要將它注入到你的控制器中(我猜你沒有這樣做,因爲如果你是的話,做一個新服務有什麼意義?)

但是,您包括$http(這是一項服務)作爲您的returnParent函數的參數;這就是爲什麼undefined or null reference錯誤彈出。

所以,你的第一行代碼應該是vm.returnParent = function() {

祝你好運!

+0

當我將其從returnParent函數更改爲服務本身時,我能夠看到它正在調用WebAPI控制器方法。我相信這是我的問題的答案。 – webdad3

0

$ HTTP是一種服務。在您的項目/文件中也包含angular-resource.js。那麼錯誤將不會存在。 你也需要注入ngResource到你的模塊。 請參閱此鏈接的具體細節: https://docs.angularjs.org/tutorial/step_11

Abhilash dķ

MCP

+0

'$ http'獨立於'ngResource' - 你可以直接使用'$ http'服務添加額外的文件。 –

+0

噢好吧。我不知道。對不起,這個信息。我只是跟着我發佈的鏈接,認爲需要ngResource。 –

相關問題