सवाल AngularJs संदर्भ त्रुटि: $ http परिभाषित नहीं किया गया है


मेरे पास निम्नलिखित कोणीय कार्य है:

$scope.updateStatus = function(user) {    
    $http({
        url: user.update_path, 
        method: "POST",
        data: {user_id: user.id, draft: true}
    });
};

लेकिन जब भी यह समारोह कहा जाता है, मुझे मिल रहा है ReferenceError: $http is not defined मेरे कंसोल में। क्या कोई मुझे यह समझने में मदद कर सकता है कि मैं यहां क्या कर रहा हूं?


194
2017-12-07 08:00


मूल




जवाब:


शायद आपने इंजेक्शन नहीं दिया है $http आपके नियंत्रक के लिए सेवा। ऐसा करने के कई तरीके हैं।

कृपया पढ़ें DI के बारे में यह संदर्भ। फिर यह बहुत आसान हो जाता है:

function MyController($scope, $http) {
   // ... your code
}

365
2017-12-07 08:12



धन्यवाद! मुझे आश्चर्य है कि क्यों कोणीय के अपने दस्तावेज (docs.angularjs.org/tutorial/step_05) में यह त्रुटि है। - Anurag


जब मैं उपयोग कर रहा था तब मैं एक ही समस्या से गुजर चुका हूं

    myApp.controller('mainController', ['$scope', function($scope,) {
        //$http was not working in this
    }]);

मैंने नीचे दिए गए कोड को नीचे दिया है। नीचे दिए गए अनुसार $ http (2 बार) शामिल करना याद रखें।

 myApp.controller('mainController', ['$scope','$http', function($scope,$http) {
      //$http is working in this
 }]);

और यह अच्छी तरह से काम किया है।


80
2018-03-02 08:58





बस पूरा करने के लिए अमित गर्ग जवाबAngularJS में निर्भरताओं को इंजेक्ट करने के कई तरीके हैं।


आप भी उपयोग कर सकते हैं $inject निर्भरता जोड़ने के लिए:

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

2
2017-10-20 09:40