неизвестный провайдер в моем приложении - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь поместить HTTP-запрос в служебный файл, чтобы использовать эту функцию на нескольких контроллерах, но я получаю ошибку ниже, я пробовал несколько решений, но все еще получаю эту ошибку

вот мой контроллер. Js

.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/LatestMovies', {
templateUrl: 'LatestMovies/LatestMovies.html',
controller: 'LatestMoviesCtrl'

});
}])


.controller('LatestMoviesCtrl', 
['myServices','$scope',function(myServices,$scope) {



$scope.movies = myServices.getLatestMovies();
console.log($scope.movies ,'ggg')
}
]);

вот мои услуги.js

   angular.module('myApp', ['ngRoute'])

 .factory('myServices', function ($http) {
return {
    getLatestMovies : function () {
            var service ={
                movies : '',
                details : []
            }
            var base = 'http://api.themoviedb.org/3';
            var service = '/movie/popular?page=1&language=en- 
             US&api_key=';
            var apiKey = '';
            var callback = 'JSON_CALLBACK';
            var url =base + service + apiKey + '&callback=' + callback;
            //$scope.results = 'requesting...';

            $http.jsonp(url).then(function(result, status) {
                //$scope.results = JSON.stringify(data);
                service.movies = result.data;
                angular.forEach(result.data.results, function (value, 
                index) {
                    service.details.push(value);
                });

            },function(result, status) {
                service.movies = 'Maybe you missed your API key?' + 
       JSON.stringify(result.data);
            });

            return service.movies;
        }
    }

    });

ошибка

angular.js: 14199 Ошибка: [$ injector: unpr] Неизвестный поставщик: myServicesProvider http://errors.angularjs.org/1.5.11/$injector/unpr?p0=myServicesProvider%20%3C-%20myServices%20%3C-%20LatestMoviesCtrl в http://localhost:8000/bower_components/angular/angular.js:68:12 в http://localhost:8000/bower_components/angular/angular.js:4563:19 в Object.getService [как получить] (http://localhost:8000/bower_components/angular/angular.js:4716:32) в http://localhost:8000/bower_components/angular/angular.js:4568:45 в getService (http://localhost:8000/bower_components/angular/angular.js:4716:32) atjectionArgs (http://localhost:8000/bower_components/angular/angular.js:4741:58) на объект.инстанции (http://localhost:8000/bower_components/angular/angular.js:4783:18) на $ controller

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Похоже, что вы дважды создавали модуль myApp, сначала в services.js, а затем в controller.js. Так что в основном то, что происходит

  1. При первой загрузке services.js создается угловой модуль myApp со службой myServices.
  2. И когда controllers.js файл загружен, в начале файла вы воссоздали модуль myApp, используя angular.module('myApp', ['ngRoute']). Где он воссоздает новый myApp модуль и регистрирует config & LatestMoviesCtrl в нем.
  3. Следовательно, myServices зависимость недоступна.

Исправить проблему при регистрации других файлов.

angular.module('myApp')
.config(...)
.controller('LatestMoviesCtrl', .... )
0 голосов
/ 06 июля 2018

вам нужно ввести модуль $ http для отправки вызова API

 .factory('myServices', ['$http',function ($http) {
return {
    getLatestMovies : function () {
            var service ={
                movies : '',
                details : []
            }
            var base = 'http://api.themoviedb.org/3';
            var service = '/movie/popular?page=1&language=en- 
             US&api_key=';
            var apiKey = '';
            var callback = 'JSON_CALLBACK';
            var url =base + service + apiKey + '&callback=' + callback;
            //$scope.results = 'requesting...';

            $http.jsonp(url).then(function(result, status) {
                //$scope.results = JSON.stringify(data);
                service.movies = result.data;
                angular.forEach(result.data.results, function (value, 
                index) {
                    service.details.push(value);
                });

            },function(result, status) {
                service.movies = 'Maybe you missed your API key?' + 
       JSON.stringify(result.data);
            });

            return service.movies;
        }
    }

    }]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...