AngularJs ReferencesError: $ http সংজ্ঞায়িত হয়নি


199

আমার নিম্নলিখিত কৌণিক কার্য রয়েছে:

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

তবে এই ফাংশনটি যখনই ডাকা হবে তখনই আমি ReferenceError: $http is not definedআমার কনসোলটিতে যাচ্ছি। এখানে আমি কী ভুল করছি তা বুঝতে কেউ আমাকে সহায়তা করতে পারে?

উত্তর:


373

সম্ভবত আপনি $httpনিজের কন্ট্রোলারে পরিষেবা ইনজেকশন করেন নি । এটি করার বিভিন্ন উপায় রয়েছে।

ডিআই সম্পর্কে এই রেফারেন্স পড়ুন । তারপরে এটি খুব সহজ হয়:

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

18
ধন্যবাদ! আমি আশ্চর্য হই যে কেন কৌনিকের নিজস্ব ডকুমেন্টেশন ( ডকস.অঙ্গুলারজেএস.আর / টিউটোরিয়াল / স্টেপ_05 ) এ ত্রুটি রয়েছে।
অনুরাগ

81

আমি যখন ব্যবহার করছিলাম তখন একই সমস্যায় পড়েছি

    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
 }]);

এবং এটি ভাল কাজ করেছে।


4

অমিত গার্গের উত্তরটি সম্পূর্ণ করতে , অ্যাঙ্গুলারজেএস-এ নির্ভরতা ইনজেকশন করার বিভিন্ন উপায় রয়েছে।


$injectনির্ভরতা যুক্ত করতে আপনিও ব্যবহার করতে পারেন:

var MyController = function($scope, $http) {
  // ...
}
MyController.$inject = ['$scope', '$http'];
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.