HINWEIS: Ich verwende angula RC2Wie kann man von einem Dienst in Angular 2 auf eine Anweisung zugreifen?
Mein Ziel ist: zu einen Eigenschaftswert in der Richtlinie aus dem Dienst eingestellt
ich eine benutzerdefinierte Richtlinie einzurichten, die einen Dienst verwendet:
@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++;
}
}
Der Fehler Ich erhalte:
Error: (SystemJS) Error: Can't resolve all parameters for UploadFile: (?)
Was habe ich versucht (single und alle zusammen):
- hinzufügen @Injectable() Dekorateur in der Richtlinie
- die Richtlinien für Anbieter hinzufügen in app.component
- hinzufügen im Konstruktor des Service: @Inject (ChooseFileDirective) _chooseFileDirective: ChooseFileDirective
Dank. sieht nach einer guten Lösung aus. Ich muss einige andere Sachen in der App umgestalten, dann werde ich das auch testen und die Antwort akzeptieren :) – dragonmnl