Примечание: Я использую Ангула RC2Как получить доступ к директиве службы в Angular 2?
Моя цель заключается в следующем: установить значение свойства в директиве от службы
Я создал пользовательскую директиву, которая использует службу:
@Directive({
selector: '[chooseFile]'
})
@Injectable()
export class ChooseFileDirective implements OnInit {
property1: number = 1;
constructor(private _element: ElementRef, private _uploadService: UploadFile) { }
ngOnInit() {
this._uploadService.foo();
}
}
UploadService
@Injectable()
export class UploadFile {
constructor(private _chooseFileDirective: ChooseFileDirective) {}
foo() {
// update variable on calling directive
_chooseFileDirective.property1++;
}
}
Ошибки я получаю:
Error: (SystemJS) Error: Can't resolve all parameters for UploadFile: (?)
То, что я пытался (один и все вместе):
- добавить @Injectable() декоратор в директиве
- добавить директивы поставщиков в app.component
- добавить в конструктор службы: @Inject (ChooseFileDirective) _chooseFileDirective: ChooseFileDirective
спасибо. выглядит как хорошее решение. Мне нужно реорганизовать некоторые другие вещи в приложении, тогда я также проверю это и соглашусь с ответом :) – dragonmnl