2016-11-04 3 views
1

Я выполнил пример в документации и получил сообщение «Ошибка: нет провайдера для ElementRef!». Он отлично работает при использовании ElementRef в @Component. Все я добавляю это ElementRef и Renderer (визуализатор не проблема):Angular 2.0.2 Отсутствует поставщик ElementRef в конструкторе @Directive при использовании webpack

import { Directive, AfterViewInit, ElementRef, Renderer} from '@angular/core'; 
export class blah implements AfterViewInit { 

constructor(private el: ElementRef, private renderer: Renderer) { } 

ngAfterViewInit() { 
    ... 

Ничего я пытался не работал вообще, поэтому я взял пример из документации, https://angular.io/docs/ts/latest/guide/attribute-directives.html, и положил его в quickstart (с системойJS). Он работал нормально. Когда я переношу это в конфигурацию webpack https://angular.io/docs/ts/latest/guide/webpack.html, он работал нормально. Угловое приложение, которое имеет проблему, намного сложнее, но я не знаю, что могло бы вызвать это.

ответ

1

Как я набрал это, я наткнулся на свою ошибку. В какой-то момент я добавил эту директиву поставщикам в «@NgModule». Сервисы не могут использовать «ElementRef», и поэтому @Directives не рассматриваются как сервисы. Тем не менее, это нечетная ошибка.

+1

Надеюсь, вы поймете свой собственный ответ в следующий раз, когда придете сюда: D –

+0

Теперь, когда вы прокомментировали. Я вернулся сюда и ... Думаю, что я ... Я думаю, это все, что имеет значение, поскольку никто не заботился об этом вопросе или ответе. ¯ \ (° _o)/¯ – Stephen

+1

downvoted. Наверное, кто-то заботится. (☉_☉) – Stephen

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