1. ホーム
  2. javascript

[解決済み】TypeError: AngularJSで未定義のプロパティ'get'を読み取れない

2022-02-06 23:28:17

質問

私はAngularJSの初心者ですが、このエラーが発生しました。以下は私のコードです。

app.factory('NotificationService', function($http){
    var factory = {};
    factory.getNotificationList = function($http){
        var url = "http://some/url";
        return $http.get(url);
    }
    return factory;
});

app.controller('NotificationListController', function($scope,$http, NotificationService) {
    var notificationList = NotificationService.getNotificationList();
    notificationList.then(function(response){
        console.log(response);
        $scope.notificationData = response.data;
        return response;
    });
});

どこが間違いなのか、とても混乱しています。エラーメッセージは

<ブロッククオート

TypeError: で未定義のプロパティ 'get' を読み取ることができません。 Object.factory.getNotificationList ( http://localhost:63342/EmailNotification/js/email-angular.js:15:21 )

解決方法は?

このエラーが発生する原因は $http がファクトリーで未定義であることを示します。

このようにファクトリーに渡すことで修正できます。

app.factory('NotificationService', ['$http', function ($http) {
    var factory = {};
    factory.getNotificationList = function() { // Remove the `$http` parameter from here.
        var url = "http://some/url";
        return $http.get(url);
    }
    return factory;
}]);