2016-01-22 3 views
0

Не уверен, почему, но мой контроллер не узнает сервис. Я проверил все, что мне не хватает. Я включил файл служб в HTML. Он признает другие услуги, но не только это один

(function() { 
    'use strict'; 

    angular 
    .module('pollyvotes') 
    .service('lineChart', lineChart); 

    /** @ngInject */ 
    function lineChart($scope, $http){ 
     var promise = null; 
     return function(){ 
     if (promise){ 
      return promise 
     } else { 
      promise = $http.jsonp('') 
      .success(function(data){ 
      $scope.predictions = data; 
     }) 
      .error(function(data){ 
      $scope.data = "Request failed"; 
      }) 

      return promise; 
     } 

     } 

Контроллер

(function() { 
    'use strict'; 

    angular 
    .module('pollyvotes') 
    .controller('MainController', MainController); 

    /** @ngInject */ 
    function MainController($scope, $timeout, lineChart) { 

    $scope.photos = [ {id: 'chart-1', name: 'something here',src: "assets/images/300x600.png", href: "https://www.google.de/?gws_rd=ssl", discription: "say something about the chart here"}, 
         {id: 'chart-2', name: 'another picture', src: "assets/images/300x600.png", href: "https://www.google.de/?gws_rd=ssl", discription: "say something about the chart here"}, 
         {id: 'chart-3', name: 'another picture', src: "assets/images/300x600.png", href: "https://www.google.de/?gws_rd=ssl", discription: "say something about the chart here"}, 
         {id: 'chart-4', name: 'another picture', src: "assets/images/300x600.png", href: "https://www.google.de/?gws_rd=ssl", discription: "say something about the chart here"} 
        ]; 

    } 

})(); 

и объявить модуль

(function() { 
    'use strict'; 

    angular 
    .module('pollyvotes', ['ngAnimate', 'ngCookies', 'ngTouch', 'ngSanitize', 
          'ngMessages', 'ngAria', 'ngResource', 'ui.router', 
          'ui.bootstrap', 'akoenig.deckgrid', 'smoothScroll', 
          'ngToast', 'picardy.fontawesome']); 

})(); 
+0

просто быть ясно, вы объявить модуль «pollyvotes» где-то еще? Я имею в виду, что у вас есть где-то '' 'javascript angular.module ('pollyvotes', []); '' ' для определения модуля. – BuriB

+0

да, да, добавьте его также с кодом – Imo

+0

Я предполагаю, что вы забыли этот бит в вопросе '})();' и он существует в вашем коде? – koox00

ответ

1

Вы инъекционный $ простор для вашей службы.

Вот что документация говорит об этой ошибке: https://docs.angularjs.org/error/ $ инжектора/unpr

Attempting to inject a scope object into anything that's not a controller or a directive, for example a service, will also throw an Unknown provider: $scopeProvider <- $scope error.

Существует хороший ответ, как избежать этого здесь: Injecting $scope into an angular service function()

+0

Спасибо, что это разрешило – Imo