2016-03-15 4 views
2

У меня есть служба, которая прекрасно работает на моем loacal сервере в среде разработки, но на Heroku в производстве я получаю сообщение об ошибке [$injector:unpr] Unknown provider: tProvider <- t <- SidebarService <- sidebarDirective

CoffeeScript:

app.factory 'SidebarService', ($http) -> 
    Resource = {} 

    Resource.getAllPhotos =() -> 
    $http.get('/photos.json') 

    Resource.getAlbum =() -> 
    $http.get() 


    Resource 

app.directive 'sidebar', ['SidebarService', (SidebarService) -> 

    template = '' 

    initSideBar = (s, e, a) -> 
    $(document).on 'click', '#all-photos', -> 
     SidebarService.getAllPhotos().then (result) -> 
     d = result.data 
     pics = for n, pic of d 
      "<div class='draggable slider__picture' id='photo-#{n}' data-type='picture' data-source='#{pic.original}' style='background: url(#{pic.thumb}) center/cover'></div>" 
     template = "<div class='slider__button-back' id='button-back__all-photos'><i class='material-icons'>arrow_back</i>" + 
      "<span>Back</span></div>" + 
      pics.join '' 
     $('#slider-pictures').empty().removeClass('slider-pictures') 
     $('#slider-pictures').append(template) 
     $('.draggable').draggable(
      { 
      revert: true 
      appendTo: 'body' 
      containment: 'window' 
      scroll: false 
      zIndex: 100 
      helper: 'clone' 
      }) 

    return { 
    restrict: 'E', 
    template: template, 
    scope: {}, 
    link: (scope, element, attributes) -> 
     initSideBar(scope, element, attributes) 
    } 
] 

Где я должен копать? Возможно, это из-за протокола https на Heroku?

+0

кажется мне, что ваше приложение не удалось, расположенной 'sidebarDirective' директивы. Убедитесь, что файл JS, содержащий эту директиву, загружается в файл приложения html. –

ответ

3

Помните, что активы (в частности, js в этом случае) не учитываются при разработке, а в prod они получают minified. Эти ошибки могут быть вызваны конфликтом во время вашего js minification. Чтобы избежать ошибок типа «инжектор» в процессе минификации, убедитесь, что вы используете $ inject для ручного определения зависимостей для угловых компонентов.

Посмотрите здесь для полной рекомендации/практикует https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md#style-y091

+0

Инъекция не помогла – Viktor

Смежные вопросы