2013-02-27 36 views
12

मैं पहली बार AngularJS को आजमा रहा हूं। $http.post("url", data) फ़ंक्शन का उपयोग करते समय, मुझे Error: $http is not defined कंसोल संदेश मिल रहा है।

मेरे एचटीएमएल पेज के शीर्ष पर मैं अन्य सभी जेएस आयात के बाद एंगुलरजेएस समेत हूं।

मैं भी विजेट के कारण अन्य जावास्क्रिप्ट पुस्तकालयों को शामिल किया है निर्भरता आदि मेरे स्क्रिप्ट आयात अनुभाग इस तरह दिखता है:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script> 
<script src="http://www.trirand.com/blog/jqgrid/js/i18n/grid.locale-en.js" type="text/javascript"></script> 
<script src="http://www.trirand.com/blog/jqgrid/js/jquery.jqGrid.min.js" type="text/javascript"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js"></script> 

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script> 

मैं एक नियंत्रक जो मैं सर्वर से कुछ डेटा भेजने के लिए उपयोग कर रहा हूँ है:

function FormCtrl($scope) { 
    $scope.sendData = function(){ 
     var data = "firstName=" + $scope.firstName + "&" + 
      "lastName=" + $scope.lastName + "&" + 
      "address=" + $scope.address + "&" + 
      "postcode=" + $scope.postcode; 

     $http.post("/data/person/put", data); 
    }; 
} 

sendData फ़ंक्शन एक बटन से जुड़ा हुआ है। $http.post(...) पर कॉल तक सभी ठीक ठीक काम करते हैं, जिस बिंदु पर कंसोल त्रुटि को आउटपुट करता है।

पूर्ण त्रुटि सूची है:

Error: $http is not defined 
[email protected]://localhost:8080/angularjs/:96 
Mc/x/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js:71 
ec[c]</</</<@https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js:142 
[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js:87 
[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js:87 
ec[c]</</<@https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js:142 
[email protected]://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js:63 
c.event.add/[email protected]://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js:57 

https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js 
Line 61 

मैं AngularJS कॉन्फ़िगर करने के लिए $http.post समारोह का उपयोग करने के कुछ और है? http://docs.angularjs.org/api/ng.$http

किसी को भी मदद कर सकते हैं:

मैं शॉर्टकट तरीके प्रलेखन यहाँ की धारा AngularJS से सीधे उपयोग उठा लिया?

धन्यवाद एडम

उत्तर

23

function FormCtrl($scope) {function FormCtrl($scope, $http) { होना चाहिए।

आप सभी नियंत्रक के लिए आवश्यक सेवाओं, इस मामले में आप $scope और $http सेवा का उपयोग कर रहे इंजेक्षन करने की जरूरत है, लेकिन आप इंजेक्शन है केवल $scope त्रुटि के कारण है।

पूर्व:

function FormCtrl($scope, $http) { 
    .... 
} 
FormCtrl.$inject = ['$scope', '$http']; 

आप minification here साथ इंजेक्शन में जटिलताओं के बारे में एक नोट पढ़ सकते हैं, पढ़ A Note on Minification

+0

इसे बाहर की कोशिश की और पूरी तरह से अब काम कर रहा। त्वरित प्रतिक्रिया के लिए आपका धन्यवाद। इतना तेज़ है कि मैं अभी तक आपका जवाब स्वीकार नहीं कर सकता। लेकिन मैं करूँगा। एक बार फिर धन्यवाद! –

+1

आप http://docs.angularjs.org/tutorial/step_05 पर खनन के साथ इंजेक्शन में जटिलताओं के बारे में एक नोट पढ़ सकते हैं –

संबंधित मुद्दे